我用setTimeout函数创建了一个循环,在执行第二或第三步后,出现了问题,因为它会在同一时间开始执行两次。这是我的函数代码:
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()。
问题可能出在哪里?
编辑:这段代码现在可以运行了。