setInterval with loop time

怎甘沉沦 提交于 2019-11-27 04:25:47

问题


setInterval(function(){}, 200)

this code run the function each 200 miliseconds, how do I do it if I only want the function to be ran 10 times.

thanks for help.


回答1:


Use a counter which increments each time the callback gets executed, and when it reaches your desired number of executions, use clearInterval() to kill the timer:

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

    counter++;
    if(counter === 10) {
        clearInterval(i);
    }
}, 200);



回答2:


(function(){
var i = 10;
    (function k(){

        // your code here            

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

    })()
})()



回答3:


if you want it to run for 10 times and the time it should run is every 200 miliseconds then 200X10 = 2000

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

but it only runs 9 times so we must add more 200 miliseconds

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

or you could run it before the setInterval

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



回答4:


Just use a for loop instead, much easier:

Just try this code.

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


来源:https://stackoverflow.com/questions/8421998/setinterval-with-loop-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!