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);
window.setInterval
. jslint will not accept the lack of space between the function
keyword and the ()
, and other stuff, but that is another discussion altogether. jslint will not accept ++
and --
, but we're here to help OP and not "hurt his feelings" :) –
Sivas (function(){
var i = 10;
(function k(){
// your code here
if( --i ) {
setTimeout( k, 200 );
}
})()
})()
setTimeout
instead of setInterval
. I would probably go with var i = 10
and if (i--)
, but that's just me :-) –
Colombi 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);
setTimeout()
. –
Coop 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);
}
Just use a for loop instead, much easier:
Just try this code.
for (counter=0; counter<0; counter++) {}
counter
is never initialized and this doesn't answer the question of how to do it within a timed delay. –
Shuler © 2022 - 2024 — McMap. All rights reserved.