我需要通过给定的延迟调用给定次数的某些函数。我应该怎么做-为计时器声明变量,并将其传递给调用函数以在某个时刻或循环内(n次)停止计时器,一次调用setTimeout(或一次其他延迟时间的方法)或其他。
编辑以修复语法错误
var timerID = null;
var n = 5;
this.timerID = setInterval(function(){
funcToInvoke(n,timerID){
if(invokeNumber == n){
clearInterval(timerID);
return;
}
else { do something}
}
},delay)
最佳答案
您当前的方法存在语法问题,不能具有类似this.timerID
的函数参数。实际上,您应该删除整个funcToInvoke
声明,并将n
和timerID
声明为局部变量,以便闭包可以使用它们。像这样:
// Don't forget to define n here!
var n = 5;
// Change timerID to local var instead of property
var timerID = null;
timerID = setInterval(function(){
if(invokeNumber == n){
clearInterval(timerID);
return;
} else {
//do something
}
// You can setTimeout again anywhere in this function if needed
}, delay);
关于javascript - 给定的setInterval(setTimeout)函数调用javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13605720/