首页 > 如何判断setInterval 是否正在执行?

如何判断setInterval 是否正在执行?

如何判断setInterval 是否正在执行?


var foo = window.setInterval(function(){
    ......
});

if (foo) {
    window.clearInterval(foo);
}

@manji setIntervalsetTimeout 返回的都是 Number,都是相应的 ID。

不过楼主需要的是判断 setInterval 是否在执行……

其实这个比较好的办法还是在执行函数里加一些处理 ,比如加一个计数器之类的,通过这个变量的变化了能了解它是否还在执行。比如

(function(ifun) {
    ifun.exeCount = 0
    setInterval(function() {
        ifun()
        ifun.exeCount++        
    }, 1000)
})(intervalFunction)

经测试,var timer=window.setInterval(...),console.log(timer)是1,typeof timer的结果是number,我估计它是计时器的id,于是我做了个实验:

var i = 0;
var k = window.setInterval(function(){
i++;
console.log(i);
if(i>10){
    window.clearInterval(1);  // 注意这里,不是k是1
            // window.clearInterval(k);  // 跟上一句效果一样
}
},10);

上面的代码只输出到11,说明这真是个计时器的id,我试图在window对象里面找到那个能获取装这些id的容器的方法,但没找到。

【热门文章】
【热门文章】