setInterval с временем цикла - PullRequest
24 голосов
/ 08 декабря 2011
setInterval(function(){}, 200)

этот код запускает функцию каждые 200 миллисекунд, как это сделать, если я хочу, чтобы функция запускалась 10 раз.

спасибо за помощь.

Ответы [ 4 ]

69 голосов
/ 08 декабря 2011

Используйте счетчик, который увеличивается каждый раз, когда выполняется обратный вызов, и когда он достигает желаемого количества выполнений, используйте clearInterval(), чтобы убить таймер:

var counter = 0;
var i = setInterval(function(){
    // do your thing

    counter++;
    if(counter === 10) {
        clearInterval(i);
    }
}, 200);
7 голосов
/ 08 декабря 2011
(function(){
var i = 10;
    (function k(){

        // your code here            

        if( --i ) {
        setTimeout( k, 200 );
        }

    })()
})()
4 голосов
/ 26 декабря 2013

, если вы хотите, чтобы он запускался 10 раз, а время его выполнения - каждые 200 миллисекунд, тогда 200X10 = 2000

var interval = setInterval(yourfunction, 200);
setTimeout(function() {
    clearInterval(interval)
}, 2000);

, но он выполняется только 9 раз, поэтому мы должны добавить еще 200 миллисекунд

var interval = setInterval(yourfunction, 200);
setTimeout(function() {
    clearInterval(interval)
}, 2200);

или вы можете запустить его до setInterval

yourfunction();
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
    clearInterval(interval)
}, 2000);
0 голосов
/ 18 апреля 2019

Просто используйте цикл for, гораздо проще:

Просто попробуйте этот код.

for (counter=0; counter<0; counter++) {}
...