【发布时间】:2021-08-07 12:42:26
【问题描述】:
我有一个函数可以启动一个可以暂停的计时器。现在我想要几个计时器一个接一个地运行,为此我决定使用 for 循环。
但是,当我在循环内调用函数时,即使循环执行 n(在本例中为 5)次,该函数也只执行一次,而 console.log 则按预期执行 5 次。我在这里做错了什么?
var timer = null;
const resetTimer = () => {
clearInterval(timer);
timer = null;
}
function trigger (startTime, endTime, sets){
for (let i = 0; i < sets; i++){
myTimer(startTime, endTime, sets);
console.log("1")
}
}
function myTimer (startTime, endTime, sets){
if (!timer) {
timer = setInterval(function() {
display.innerHTML = hhmmss(++startTime);
if (startTime >= endTime) {
resetTimer();
}
}, 1000);
}
}
【问题讨论】:
-
您只有 1 个
timer变量。启动第一个间隔计时器后,其他任何一个都不会启动,因为if (!timer)将失败。
标签: javascript html function for-loop