Change Interval Of Setinterval
Is there a way of modifying the interval of calls of function set with setInterval during runtime, other than removing it (clearInterval) and reinstating again with a different val
Solution 1:
Use setTimeout instead, additionally this a non-blocking method for async JS:
var interval = 1000;
functioncallback() {
console.log( 'callback!' );
interval -= 100; // actually this will kill your browser when goes to 0, but shows the ideasetTimeout( callback, interval );
}
setTimeout( callback, interval );
Don't use setInterval, as in some cases (lots of setInterval + long callbacks, which are usually longer than timeout), due to limited queue size, some callbacks will be dropped by the browser and never executed. Only setTimeout guarantees execution.
Solution 2:
Nope; removing the interval and re-adding it is the way to do it if you've used setInterval().
You could accomplish the same goal of a varying timeout, however, by calling setTimeout() repeatedly with a variable delay at the end.
Out of curiosity, what are you doing that you want to modify the interval? Perhaps requestAnimationFrame() might be more appropriate?
Post a Comment for "Change Interval Of Setinterval"