2012-11-19 52 views
1

在JavaScript中,我需要做到以下幾點,寫的僞代碼:的setTimeout和setInterval在一起 - 重複暫停

REPEAT EVERY 5 SECONDS 
    print 'One' 
    wait 2.5 seconds 
    print 'Two' 
    wait 2.5 seconds 

我怎樣才能做到這一點?我的(笨拙的?)嘗試如下:

a = setInterval(function() { 
    setTimeout(function(){print 'one'},0); 
    setTimeout(function(){print 'two'},2500); 
    },5000); 

改進?

+0

你是詢問等待之間'2.5'秒''''和''兩'',然後在''two''和''one''之間'7.5'秒,或者你問每個'2.5'在'o​​ne'和'two'之間交替'秒? –

回答

3
var counter = 0; 

setInterval(function() { 
    console.log(counter++ % 2 ? 'one' : 'two'); 
}, 2500); 

這裏的小提琴:爲什麼要setTimeout和setInterval的結合起來,這http://jsfiddle.net/RvVD7/

+0

達到預期的輸出,但不是OP要求的方式。 – RobG

+0

@RobG:仔細閱讀問題(不是標題),它看起來像OP沒有指定這樣做的「方式」。因此,這是對OP代碼的有效改進,因此是對他的問題的有效答案。 – slebetman

+0

不僅有標題,還有一些僞代碼。這可能是OP真正想要你寫的東西。現在他/她有兩個答案:每個問題一個答案,一個答案可能應該完成。你救了我寫第二個。 :-) – RobG

3

仍是一個謎,但無論如何:

setInterval(function() { 
    console.log('one'); 
    setTimeout(function() { 
    console.log('two'); 
    },2500); 
}, 5000); 
+0

你打算如何以簡單的方式做到這一點? – Toastgeraet