【发布时间】:2020-03-26 16:32:11
【问题描述】:
我目前正在用 Javascript 制作一个带有开始和停止按钮的番茄计时器。在使用 clearInterval() 停止倒计时后,我遇到了使用 setInterval() 开始倒计时的问题。我有 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);
}
【问题讨论】:
-
提示:
clearInterval(intervalID);不会改变变量intervalID的值 -
您忘记在
clearInterval(intervalID);之后添加intervalID = 0;(JavaScript 没有 out 或 ref 参数) -
谢谢 jaromanda X 和 nick,您的信息使它成功了!我不知道简单地使用 clearInterval() 不会改变值。
标签: javascript electron