Как инициализировать обратный отсчет. js отсчет начинается с 0 - PullRequest
0 голосов
/ 07 апреля 2020

Я использую Pusher для отправки обновлений webhook моему таймеру. Проблема в том, что если таймер построен с истекшим значением «diff», я получаю сообщение об ошибке «Попытка запустить таймер, когда отсчет уже равен 0». Кроме того, я не могу правильно установить обратный вызов остановки для сброса таймера при новом обновлении, если оно истекло. Есть ли способ справиться с этим во FlipClock. js В vue:

...
mounted() {
            let remaining = moment.duration(moment(this.dbTime + '+0:00') - this.now);

            this.clock = $('.clock').FlipClock(remaining/1000, {
                clockFace: 'HourlyCounter',
                countdown: true,
                callbacks: {
                    stop: function() {

                    }
                }
            });
        },
...

и в vue, когда происходит обновление Pusher:

...
created() {
        let interval = this.refreshEverySecond();

        var pusher = new Pusher('XXXXXXXXXX', {
            cluster: 'us2',
            forceTLS: true
        });

        // Subscribe to the channel we specified in our Laravel Event
        var channel = pusher.subscribe('timer-channel');
        var ref = this;

        // Bind a function to a Event (the full Laravel class)
        channel.bind('timer-updated.' + this.timer_id, function(data) {
            ref.dbTime = data.end_time;
            ref.db_is_locked = data.is_locked

            ref.update_clock();
        });
    },
....

update_clock Метод:

update_clock() {
                let remaining = moment.duration(moment(this.dbTime + '+0:00') - this.now);
                this.clock.reset();
                this.clock.setTime(remaining/1000);

                return this.clock.start();
            },
...