The event loop lets JavaScript handle async tasks on a single thread.
Example Code
console.log("Start");
setTimeout(() => {
console.log("Timeout");
}, 0);
Promise.resolve().then(() => {
console.log("Promise");
});
console.log("End");
Output: Start → End → Promise → Timeout
Why this order?
-
Start
andEnd
are synchronous → run immediately on the call stack. -
Promise.then
is a microtask → runs before macrotasks. -
setTimeout
callback is a macrotask → runs after microtasks drain.
Originally published on: Bitlyst
Top comments (0)