我想执行一段任意代码并且能够随时停止它。我想我可以用 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)
现在,一种方法是控制正在执行的代码,并将任何额外超时的值存储到全局变量中,然后立即将它们全部清除。但是有更好的方法吗?有没有办法在任意代码上执行此操作?
澄清一下,我试图能够执行我想要的任何功能,然后在我想要的时候停止它,即使该功能包含超时
最佳答案
您也可以将内部超时放入变量中:
var innerTimeout,
timeoutID = setTimeout(
function(){
console.log("first event can be stopped with clearTimout(timeoutID)");
innerTimeout = setTimeout(function(){console.log("but not this one")}, 5000);
}, 5000);
关于javascript - 在 Javascript 中停止嵌套超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436465/