I have two questions related to the JavaScript's setInterval()
method.
I haven't found any practical cases (but I guess it's not impossible also) related to these question, but for curiosity I wanted to ask these questions.
What happens if the code to be be executed by the setInterval()
takes more time than the time interval provided? Does the previous execution stops and the current one starts executing or both will run in parallel.
What if the whole system (OS) is hanged between the time gap when setInterval()
is called? Is it possible that the code can execute with some different interval during this condition? I mean does setInterval()
guarantees that the code will be executed at the specified interval only?
Thanks
JavaScript uses single threaded execution. Functions such as setTimeout
and setInterval
lead many to believe that it is possible to multi-thread in JavaScript. In reality, setInterval
and setTimeout
merely schedule a function or expression to execute at a specified time and those functions are added to the same single-threaded stack. If the browser is in the middle of processing something else when a setTimeout
or setInterval
is scheduled to fire, the scheduled functions will execute as soon as the browser can get to it.
setInterval
does not guarantee that a function will execute at the specified interval only. setInterval
will try to execute a function at the specified time, but any number of things could delay the execution or prevent it from executing altogether.