Как остановить цикл JavaScript для определенного интервала времени? - PullRequest
5 голосов
/ 29 мая 2010

Я использую javascript для цикла, чтобы пройти через определенный массив и предупредить его значение. Я хочу, чтобы после каждого предупреждения оно прекращалось на 30 секунд, а затем продолжалось ... до конца цикла. мой код идет сюда ..

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

Я использовал функцию setTimeout (), но она не работает ... как итерация конца цикла, но не делает паузу в течение 30 секунд ... Есть ли другой способ, например, функция сна в PHP ??

Ответы [ 2 ]

10 голосов
/ 29 мая 2010
for (var i = 0; i < valArray.length; i++)
  (function(i) {
    setTimeout(function() {
      alert(valArray[i]);
    }, i * 30000);
  })(i);

Отредактировано для исправления проблемы замкнутого контура.

6 голосов
/ 29 мая 2010

В 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...