清除后重置间隔

时间:2014-02-06 13:04:45

标签: javascript intervals

我有这段代码:

var int1 = setInterval(function () {
    // do stuff

    if(//stuff done){
        clearInterval(int1); 
        setTimeout(
             function () {
                  setInterval(int1)
             }
        ,60000);
    }}
}, 1000)

并希望间隔在60秒后再次运行,但setInterval(int1)似乎不再触发它。我做错了什么?

编辑:完整代码:http://pastie.org/8704786

3 个答案:

答案 0 :(得分:1)

那是因为int1不是一个函数,而是一个区间id。试试这个:

var int1;
var func = function () {
    // do stuff

    if(//stuff done){
        clearInterval(int1); 
        setTimeout(func, 60000);
    }
};
int1 = setInterval(func, 1000);

答案 1 :(得分:1)

你犯了两个错误:

  1. setInterval是一个函数,而int1包含一个间隔句柄
  2. 您没有在setInterval调用中传递时间
  3. 你想要的是:

    var int1;
    
    function scheduleStuff() {
        int1 = setInterval(doStuff, 1000);
    }
    
    
    function doStuff() {
        // do stuff
    
        if(/*stuff done*/){
            clearInterval(int1); 
            setTimeout(scheduleStuff,60000);
        }}
    }
    
    scheduleStuff();
    

答案 2 :(得分:0)

设置间隔期望在等待时间后调用的函数...

这条线错了:

setInterval(int1)

没有任何功能,也没有等待时间...