Hacker News new | ask | show | jobs
by aa0 4681 days ago
Timeouts are not checked on every event loop, hence the 4ms delay. And no, setTimeout is asynchronous and processed during the event loop.

Basic event loop is; timeouts, js execution, repaint, reflow, etc

1 comments

What I mean to say is, what's the practical difference between running setImmediate(doSomething) and just calling doSomething() in its place if setImmediate blocks the execution anyway, is there some kind of special use that would make it useful?
Yes, render,reflow,timeouts,event handling, etc happens.. You might need to set a CSS property and then animate it. In this case you'll need to wait for a render in between the two steps

Also useful if you need to wait until after all event handlers are executed in the current context

Gotcha, thanks for the explanation!