我用 setTimeout 函数创建了一个循环,它在第 2 步或第 3 步后出现问题,它自己调用,因为它同时开始执行两次。这就是我的函数的样子:
var value = 70,
intervalID = null;
function interval() {
intervalID = setTimeout(countDown, 1000);
}
function countDown() {
value--;
if(value > 0) {
clearTimeout(intervalID);
interval();
} else {
endInterval();
}
}
function endInterval() {
// do something
}
如果我控制台变量值是 69、68,然后它在一个函数调用中开始两次减小变量值。我不会在任何地方调用函数 countDown(),而是从一个地方调用。
可能是什么问题呢?
编辑:此代码现在有效。