setInterval () не работает после clearInterval () - PullRequest
0 голосов
/ 26 марта 2020

В настоящее время я делаю pomodoro таймер в Javascript с кнопками запуска и остановки. Я сталкиваюсь с проблемами с использованием setInterval (), чтобы начать обратный отсчет после того, как он был остановлен с помощью clearInterval (). У меня есть 2 функции, которые вызываются нажатием кнопки, одна начинает обратный отсчет с помощью setInterval (), другая останавливает его с помощью clearInterval (). Я не уверен, что происходит, это моя реализация ниже:

var startTime = 25; // this value will change depending on what the user selects, default value is 25:00
var time = startTime * 60; //number of seconds total
var intervalID; //used for setInterval()

var pomodoroTimer = document.getElementById('pomodoro-timer');


function updateTimer(){
    let minutes = Math.floor(time/60);
    let seconds = time % 60;

    minutes = minutes < 10 ? '0' + minutes : minutes;
    seconds = seconds < 10 ? '0' + seconds : seconds; 

    pomodoroTimer.innerHTML = minutes + ':'+ seconds;
    time--;
}

function startTimer(){
    if(!intervalID){ // to prevent multiple setIntervals being queued up
        updateTimer(); // call this once to stop clock from taking too long on first use of the setInterval function
        intervalID = setInterval(updateTimer, 1000);
    }
}

function stopTimer(){
    clearInterval(intervalID);
}

1 Ответ

1 голос
/ 26 марта 2020
function stopTimer(){
    clearInterval(intervalID);
    intervalID = undefined;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...