Javascript 为什么我的循环只能在循环中使用警报进行正确迭代?
我在一个移动应用程序中编写了一个循环,它以特定的模式振动手机,并根据用户的指定重复多次。请参阅下面的代码:Javascript 为什么我的循环只能在循环中使用警报进行正确迭代?,javascript,android,jquery,Javascript,Android,Jquery,我在一个移动应用程序中编写了一个循环,它以特定的模式振动手机,并根据用户的指定重复多次。请参阅下面的代码: do { navigator.vibrate([200,200,200,200,200,1000]); //alert("v" + vibrator); //alert("a" + alert_number); vibrator++; } while (vibrator < alert_number); do { 振动([20010
do
{
navigator.vibrate([200,200,200,200,200,1000]);
//alert("v" + vibrator);
//alert("a" + alert_number);
vibrator++;
}
while (vibrator < alert_number);
do
{
振动([2001000]);
//警报(“v”+振动器);
//警报(“a”+警报编号);
可控震源++;
}
while(可控震源<报警编号);
现在,当警报被注释掉时,模式只“振动”一次,而不管警报编号的值(模式重复的次数)。如果alerts()处于活动状态,则模式会重复正确的次数,尽管只需按几下alerts即可关闭弹出窗口,这是我不希望看到的。有人能告诉我为什么警报会影响环路的运行吗?您最好在这种情况下使用,因为每次振动之间需要一个延迟,否则它将“一次全部”发生 例如
听起来你需要加上延迟,实际上发生的是,振动的模式都在同一时间发生,在彼此之间?我原以为情况可能是这样,但正在努力想出最好的方式来拖延。
var vibrator = 0;
var v_id = setInterval(function() {
navigator.vibrate([200,200,200,200,200,1000]);
if(vibrator++ == alert_number) {
clearInterval(v_id);
}
}, 250);