Event Loop — Complete Guide
Event Loop — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of JavaScript Tutorial on Toolliyo Academy.
On this page
JavaScript Tutorial · Lesson 41 of 100
Event Loop
Basics ✓ → Objects & data ✓ → Async & DOM → Advanced → Tools → Projects
Intermediate · 3 — Async & DOM · ~6 min · JS Async JavaScript
What is this?
The event loop is how JavaScript runs async code on one thread: run sync code, drain microtasks, then one macrotask, repeat.
Why should you care?
Explains why promises run before setTimeout(0) and why long loops freeze the page.
See it live — copy this example
Paste into an HTML file or the browser console (F12). Use Run below when the live editor is available.
console.log("1");
setTimeout(() => console.log("2"), 0);
Promise.resolve().then(() => console.log("3"));
console.log("4");
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- Order: 1, 4, 3, 2.
- Sync first, then microtask (promise), then macrotask (timeout).
Practice next
- Predict log order 1,4,3,2 then run the example.
- Add another .then in the promise chain.
- Insert a long sync loop and feel UI freeze.
- Add queueMicrotask between setTimeout and Promise and predict new order.
- Nest setTimeout inside a .then and trace two loop turns.
Remember
Single-threaded JS Microtasks before macrotasks Keep tasks small
ScriptVerse loading spinner
After fetch resolves, microtasks update state before the browser paints the spinner off — order matters for flicker-free UI.
Outcome: Event loop knowledge explains race conditions between data arrival and paint.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!