如何在特定的时间间隔内停止javascript循环?

时间:2010-05-29 10:58:05

标签: javascript loops

我正在使用javascript for循环,循环遍历特定数组并提醒它的值。我希望在每次警报后它应该停止30秒然后继续......直到循环结束。 我的代码在这里..

    for(var i=0; i<valArray.lenght; i++)
    {
        alert("The value ="+valArray[i]);
        //stop for 30seconds..      
    }

我已经使用了setTimeout()函数,但是它没有工作...作为循环结束迭代但不停顿30秒间隔... 有没有其他方法,如PHP中的睡眠功能

2 个答案:

答案 0 :(得分:10)

for (var i = 0; i < valArray.length; i++)
  (function(i) {
    setTimeout(function() {
      alert(valArray[i]);
    }, i * 30000);
  })(i);

编辑修复闭包循环问题。

答案 1 :(得分:6)

JavaScript中没有睡眠功能。 您可以将以上代码重构为:

function alert_and_sleep(i) {
   alert("The value ="+valArray[i]);
   if(i<valArray.length) {
     setTimeout('alert_and_sleep('+(i+1)+')',30000);
   }
}
alert_and_sleep(0);