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.
(function(){
var i = 10;
(function k(){
// your code here
if( --i ) {
setTimeout( k, 200 );
}
})()
})()
Just use a for loop instead, much easier:
Just try this code.
for (counter=0; counter<0; counter++) {}
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);
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);