我想执行一段任意代码并能够随时停止它。我想我可以这样做setTimeout
,然后用clearTimeout
它来阻止它。但是,如果超时中的代码创建了它自己的超时,那么即使我清除了原始超时,这些也会继续执行。
例子:
var timeoutID = setTimeout(
function(){
console.log("first event can be stopped with clearTimout(timeoutID)");
setTimeout(function(){console.log("but not this one")}, 5000)
}, 5000)
现在一种方法是控制正在执行的代码,并使其将任何额外超时的值存储到一个全局变量中,并一次将它们全部清除。但是有没有更好的方法来做到这一点?有没有办法在任意代码上做到这一点?
为了澄清,我试图能够执行我想要的任何函数,然后在我想要的时候停止它,即使函数包含超时