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.
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.
 
    
     
    
    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);
 
    
    (function(){
var i = 10;
    (function k(){
        // your code here            
        if( --i ) {
        setTimeout( k, 200 );
        }
    })()
})()
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);
 
    
     
    
    Just use a for loop instead, much easier:
Just try this code.
for (counter=0; counter<0; counter++) {}
 
    
     
    
    Reusable approach with options number of loop and delay time and utilize callback function
const loopInterval = ( callBack, numberOfLoop, delay ) => {  
  let counter = 0;
  let i = setInterval( ()=> {
      callBack([counter, numberOfLoop]);
      counter++;
      if(counter === numberOfLoop ) clearInterval(i);
  }, delay);
}
const runThisFunctionAsCallBack = ( x ) => console.log(`Do something here...  Loop # ${x}` )
loopInterval( runThisFunctionAsCallBack, 4, 500 ) 
    
    My approach is similar to JavaScripter199's (the use of a for loop) approach but with the included setInterval function. See below:
 for (let runner = 0; runner < 10; runner++) {
      setInterval(() => {
            //Some code logic of yours.
        }
      }, 200 //run every 200 milliseconds);
    }
