Intermediate Topic 20 of 51 Web Development
Event Loop
Mechanism scheduling callbacks and microtasks in JavaScript.
How it works
The event loop is the mechanism that lets single-threaded JavaScript handle asynchronous work. Synchronous code runs on the call stack; when asynchronous operations such as timers, network calls and user events finish, their callbacks are queued. The loop takes the next task from the task queue whenever the stack is empty, and after each task runs all microtasks, such as promise callbacks, before rendering and moving on. Web APIs and Node's libuv perform work outside the main thread.
Step-by-step walkthrough
- Synchronous code runs on the call stack.
- Timers and fetch are handled by Web APIs.
- When done their callbacks go to the task queue.
- After the stack empties, microtasks such as promise callbacks run first.
- Then the loop takes the next task, so setTimeout 0 runs after promises.
Where it is used
Understanding it explains why setTimeout with zero delay runs after current code, why long scripts freeze the page and the order of logs from promises and timers.
Common pitfall
Blocking the stack with heavy loops prevents rendering and event handling; split work into chunks, use requestIdleCallback or move it to Web Workers. Microtask loops can starve the loop. Timers are not exact. Ordering assumptions between timers, promises and I/O differ across environments, so test them.
Where it fits in the course
Event Loop is topic 20 of 51 in Web Development, rated Intermediate. It follows Promises. The next topic is ES Modules.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Web Development quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Web Development quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Event Loop?
Where do people use Event Loop?
What is the most common mistake with Event Loop?
What should I learn before this topic?
How can I practice it?
Is Event Loop hard to learn?
How long does it take to learn Event Loop?
Which topics are related to Event Loop?
What should I study after Event Loop?
Related topics
- Promises (Web Development)
- ES Modules (Web Development)
- Asynchronous JavaScript (Web Development)
- Local Storage and Cookies (Web Development)
- Game Loop (Graphics, Vision & Media)
- Event-Driven Concurrency (Concurrency & Parallelism)
- Loop Optimizations (Languages & Compilers)