setInterval with loop time

后端 未结 4 1918
醉梦人生
醉梦人生 2020-12-05 06:58
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.

相关标签:
4条回答
  • 2020-12-05 07:17
    (function(){
    var i = 10;
        (function k(){
    
            // your code here            
    
            if( --i ) {
            setTimeout( k, 200 );
            }
    
        })()
    })()
    
    0 讨论(0)
  • 2020-12-05 07:20

    Just use a for loop instead, much easier:

    Just try this code.

    for (counter=0; counter<0; counter++) {}
    
    0 讨论(0)
  • 2020-12-05 07:22

    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);
    
    0 讨论(0)
  • 2020-12-05 07:34

    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);
    
    0 讨论(0)
提交回复
热议问题