我需要通过给定的延迟调用给定次数的某些函数。我应该怎么做-为计时器声明变量,并将其传递给调用函数以在某个时刻或循环内(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声明,并将ntimerID声明为局部变量,以便闭包可以使用它们。像这样:

// 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/

10-11 06:07