我想執行一段任意代碼,並且能夠隨時停止它。我想我可以用setTimeout
做到這一點,然後用clearTimeout
來阻止它。但是,如果超時中的代碼創建它自己的超時時間,那麼即使在我清除原始數據後,這些代碼仍會繼續執行。在Javascript中停止嵌套超時
例子:
var timeoutID = setTimeout(
function(){
console.log("first event can be stopped with clearTimout(timeoutID)");
setTimeout(function(){console.log("but not this one")}, 5000)
}, 5000)
現在,一個辦法是控制正在執行的代碼,並使其成爲任何額外的超時值存儲到一個全局變量和清除它們的一次。但有沒有更好的方法來做到這一點?有沒有辦法在任意代碼上做到這一點?
爲了澄清,我想能夠執行我想要的任何功能,那麼停止它時,我想,即使該函數包含超時
請澄清一下你的問題你想要做什麼? –
@tryingToGetProgrammingStraight我想執行任何函數,並且能夠在任何時候阻止它執行,即使函數使用它自己的超時。 – Houshalter
請編輯你的問題 –