2017-04-11 37 views
0

我正在一個移動應用程序中編寫一個循環,以特定模式振動手機,按用戶指定的次數重複。請參見下面的代碼:爲什麼我的循環只能用循環中的警報正確迭代?

do 
{ 
    navigator.vibrate([200,200,200,200,200,1000]); 
    //alert("v" + vibrator); 
    //alert("a" + alert_number); 
    vibrator++; 
} 
while (vibrator < alert_number); 

現在,隨着警報alert_number(次數的圖案將被重複)的值的註釋僅「振動」一次的模式,而不管。如果我的警報()處於活動狀態,則該模式會重複正確的時間,儘管只需按幾下警報即可關閉彈出窗口,而我不想這樣做。誰能告訴我爲什麼有警報會影響循環的操作?

+1

聽起來像是你需要添加延遲 – epascarello

+0

所以基本上發生的事情是,振動的模式都在同一時間發生的事情,在對方嗎?我認爲可能是這種情況,但正在努力想出最好的方式來推遲它們。 –

回答

0

在這種情況下,您最好使用setInterval,因爲您需要每次振動之間的延遲,否則它將全部「一次全部」發生。

E.g.

var vibrator = 0; 
var v_id = setInterval(function() { 
    navigator.vibrate([200,200,200,200,200,1000]); 
    if(vibrator++ == alert_number) { 
     clearInterval(v_id); 
    } 
}, 250);