Jan*_*var 4 javascript settimeout intervals
我用 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
}
Run Code Online (Sandbox Code Playgroud)
如果我将变量值控制为 69、68,然后在一次函数调用中开始两次减少变量值。我不是在任何地方而是从一个地方调用函数 countDown()。
可能是什么问题呢?
编辑:此代码现在有效。
小智 5
我建议您通过停止前一个超时来“清理”超时。
function interval() {
clearTimeout(intervalID);
intervalID = setTimeout(countDown, 1000);
}
Run Code Online (Sandbox Code Playgroud)
然而,它看起来像是控制症状而不是疾病的原因。所以最好能检测出问题的原因。
| 归档时间: |
|
| 查看次数: |
5579 次 |
| 最近记录: |