The reason setInterval
is bad is because it will try to execute the code every X MS regardless of what’s going on in the thread. So if you have:
setInterval( complexFunction, 1 ); // complexFunction takes >1 MS to complete
…you may end up with setInterval
trying to re-execute several times before even its own code is complete! However, you can use setTimeout
similarly and avoid this problem:
setTimeout( complexFunction, 1 );
function complexFunction() {
// complex code
setTimeout( complexFunction, 1 );
}
…now complexFunction
will only call itself again once its own code is complete, so if its own code takes longer than 1 MS to complete you won’t have any backlog to deal with like you would with setInterval