我想知道是否有一種方法來「暫停」一個javascript setInterval
命令,然後在幾秒鐘後恢復它,然後通過循環,暫停一段時間,開始循環再次,暫停等等?換句話說,當邏輯條件正確時,在再次接通之前暫停一段時間?在JavaScript中定期暫停setInterval循環
使用僞代碼,我的想法是這樣的:
setInterval(fn, 1000);
pausecondition = false;
fn()
{
// do stuff, including pausecondition
if (pausecondition == true)
{
// pause for two seconds
// pausecondition = false
}
}
我想要的是一個setInterval
每1000毫秒的工作,然後在暫停條件爲真,功能暫停兩秒鐘然後setInterval像以前一樣每1000毫秒恢復一次。
由於夾竹桃。我可以問一個問題嗎?我檢查了一些JavaScript網站,它說setTimeout只能使用一次;這裏是這種情況嗎? 我問的原因是我希望我的代碼每1000毫秒運行一段時間,然後暫停2000毫秒,然後每隔1000毫秒恢復一次,然後暫停,然後再次啓動等。 – EventHorizon
@EventHorizon簡而言之,是的,你可以運行'setTimeout'。它看起來像'setTimeout'是從你的角度平行的運行,因爲JavaScript是在引擎下使用事件循環而不是線程。但在上面的例子中,這不是你必須考慮的。 – Oleander
謝謝!事實證明,我想做的事情拋出了一大堆其他問題,所以我簡化了我的方法(也提供了更多可讀代碼) – EventHorizon