javascript - 如何判断setInterval 是否正在执行?
天蓬老师
天蓬老师 2017-04-10 14:38:08
[JavaScript讨论组]

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
高洛峰
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)
PHPz

经测试,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的容器的方法,但没找到。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号