我需要一個setInterval
在另一個setInterval
結束後開始。有承諾做到這一點的方法嗎?jQuery Promise with setTimeout
理想情況下,我想代碼看起來像這樣:
for (i=0; i<5; i++){
setInterval(fun_1, 1000)
//wait until this is done
}
我需要一個setInterval
在另一個setInterval
結束後開始。有承諾做到這一點的方法嗎?jQuery Promise with setTimeout
理想情況下,我想代碼看起來像這樣:
for (i=0; i<5; i++){
setInterval(fun_1, 1000)
//wait until this is done
}
的setInterval
調用所提供的函數給出的時間間隔後,直到你clear
其對象。 So you do not need a loop for this
。計數器達到所需值後,您可以用use a counter
來終止它。
var myInter;
i = 1;
function fun_1()
{
// some code
if(i++==5)
clearInterval(myInter);
}
myInter = setInterval(fun_1, 1000);
你的意思,你想第二個區間開始倒計時前一區間完成後?在這種情況下,你會說
window.setTimeout(fun_1, 1000);
function fun_1
{
window.setTimeout(fun_2, 1000);
}
這會在第一個超時完成後開始倒計時。
你應該叫下一個間隔的第一個完成
var cnt = 0;
function executeNextStep(){
fun_1();
if (cnt<5) {
window.setTimeout(executeNextStep,1000);
}
cnt++;
}
executeNextStep(); //execute this right away
//window.setTimeout(executeNextStep,1000); use this if you want it to be delayed
後,如果您需要執行不同的功能:
function fun_1() {
console.log(1);
}
function fun_2() {
console.log(2);
}
function fun_3() {
console.log(3);
}
var fnc_stack = [fun_1, fun_2, fun_3];
var cnt = 0;
function executeNextStep(){
fnc_stack[cnt]();
cnt++;
if (cnt<fnc_stack.length) {
window.setTimeout(executeNextStep,1000);
}
}
executeNextStep();
你的意思是'setTimeout'? 'setInterval'無休止地調用它的回調,直到調用clearInterval。 – 2012-08-08 17:30:32
'setInterval(callback,n)'將在每「n」毫秒重複提供的'callback'。 – zzzzBov 2012-08-08 17:30:36
https://developer.mozilla.org/en-US/docs/DOM/window.setInterval與https://developer.mozilla.org/zh-CN/docs/DOM/window.setTimeout – 2012-08-08 17:33:02