循环期间JS setTimeout?

时间:2014-06-24 16:11:55

标签: javascript

有没有办法为循环的每次迭代执行setTimout?

我基本上希望每次迭代都达到500

setTimeout(function(), 500);                     }

如果是这样,它看起来怎么样?

for (var i = 0; i < 10; i++){

}

2 个答案:

答案 0 :(得分:0)

所以你有一段你想要执行N次的代码,每次执行之间等待500ms?

你可以使用setInterval(https://developer.mozilla.org/en-US/docs/Web/API/Window.setInterval)而不是setTimeout,然后在你在间隔上执行的代码中,包括一个计数器和一个条件来删除间隔(Stop setInterval call in JavaScript)之后正确的执行次数。

答案 1 :(得分:0)

您无法在for循环中执行此类操作。但你可以效仿它:

var latency = 500,
    iteration = 0,
    numIterations = 10;

var loop = function() {

    // Do your stuff, like:
    console.log( iteration );

    /*
    // break; simulation - return early if some condition was achieved:
    if ( iteration == 8 ) {
        return;
    }
    */

    // Loop handling, you'll need those lines, don't remove.
    iteration += 1;
    if ( iteration < numIterations ) {
        setTimeout( loop, latency );
    }
}

loop(); // invoke first cycle