不知名情况下清空所有计时器
首先观察定时器创建时候的具名setInterval的值
console运行
var t = setInterval(()=>console.log(1),10000)
然后 t 回车
这时候 发现t是一个数字(本次是335)
并且会定时打印1
普遍清空当前定时器的方法是
clearInterval(t);
但是我们针对不同来源的定时器的时候不可能知道每个定时器名称和他的作用域
But!试试 clearInterval(335)
成功清除当前定时器。
也就是通过数字 可以定位所有具名定时器(测试得匿名定时器也是一样生成id)
这个范围是0~9999
同理timeout也一样
也就是 function clearAllInterval(){
for (var i = 1; i < 99999; i++) {
window.clearInterval(i);
window.clearTimeout(i); //去除延时器
}
}
当不同来源的定时器产生出bug不好处理时,不妨试试这个方式