gpt4 book ai didi

javascript - 如何在不知道 ID 的情况下清除所有 setInterval() 和 setTimeOut()?

转载 作者:行者123 更新时间:2023-11-30 08:12:07 25 4
gpt4 key购买 nike

如果我不知道setInterval()setTimeOut()的返回值,我还能用clearInterveral(id)吗或 clearTimeOut(id) 清除它们?

谢谢。

最佳答案

您可以像这样替换原来的 setTimeout 和 setInterval:

   setInterval = (function( oldsetInterval){
var registered=[],
f = function(a,b){
return registered[ registered.length ] = oldsetInterval(a,b)
};
f.clearAll = function(){
var r;
while( r = registered.pop()) {
clearInterval( r );
}
};
return f;
})(window.setInterval);

现在:

setInterval( function(){alert(5000)}, 5000 );
setInterval( function(){alert(10000)}, 10000 );

setInterval.clearAll();

建议来自@PointedEars 的评论,您不应该使用相同的名称:

reportingSetInterval = as above;
reportingSetInterval( function(){alert(5000)}, 5000 );

等等..

关于javascript - 如何在不知道 ID 的情况下清除所有 setInterval() 和 setTimeOut()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com