扫码关注官方订阅号
如何判断setInterval 是否正在执行?
欢迎选择我的课程,让我们一起见证您的进步~~
var foo = window.setInterval(function(){ ...... }); if (foo) { window.clearInterval(foo); }
@manji setInterval 和 setTimeout 返回的都是 Number,都是相应的 ID。
setInterval
setTimeout
Number
不过楼主需要的是判断 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的容器的方法,但没找到。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
@manji
setInterval
和setTimeout
返回的都是Number
,都是相应的 ID。不过楼主需要的是判断
setInterval
是否在执行……其实这个比较好的办法还是在执行函数里加一些处理 ,比如加一个计数器之类的,通过这个变量的变化了能了解它是否还在执行。比如
经测试,var timer=window.setInterval(...),console.log(timer)是1,typeof timer的结果是number,我估计它是计时器的id,于是我做了个实验:
上面的代码只输出到11,说明这真是个计时器的id,我试图在window对象里面找到那个能获取装这些id的容器的方法,但没找到。