2012-12-01 84 views
1

就像'繼續'被用來打破當前的迭代並繼續下一個,我怎麼能在JavaScript中的setInterval()中打破當前的迭代,並在沒有等待的情況下繼續下一個時間間隔?如何打破當前的迭代,並繼續setInterval()內的下一次迭代?

var intervalID = window.setInterval(function() { 
    if(conditionIsTrue) { 
     // Break this iteration and proceed with the next 
     // without waiting for 3 seconds. 
    } 
}, 3000); 
+0

哪裏是你的迭代。有沒有循環? – polin

+1

你可以給我們一些關於你想要做什麼的更好的想法。目前,這聽起來像是在試圖炸燬你的網絡瀏覽器。 –

回答

1

你可以 「簡單」(或不那麼簡單)清除區間,並重新創建它:

// run the interval function immediately, then start the interval 
var restartInterval = function() { 
    intervalFunction(); 
    intervalID = setInterval(intervalFunction, 3000); 
}; 

// the function to run each interval 
var intervalFunction = function() { 
    if(conditionIsTrue) { 
     // Break this iteration and proceed with the next 
     // without waiting for 3 seconds. 

     clearInterval(intervalID); 
     restartInterval(); 
    } 
}; 

// kick-off 
var intervalID = window.setInterval(intervalFunction, 3000); 

Here's a demo/test Fiddle.

+0

是的,我認爲將'invervalFunction'分解成它自己的函數會讓整個事情變得更有意義。 –

相關問題