DEV Community

Shashi Bhushan Kumar
Shashi Bhushan Kumar

Posted on

JavaScript Event Loop Explained Simply (With Diagram)

Understanding JavaScript Event Loop (With Simple Explanation + Diagram)

❗ Recently, I faced a question in an interview:

"Can you explain how JavaScript handles asynchronous operations?"

I thought I knew the answer… but explaining it clearly was not that easy.

So I decided to break it down and create a simple diagram to truly understand the Event Loop.


🧠 JavaScript is Single-Threaded

JavaScript runs on a single thread, which means it can execute only one task at a time.

To manage this efficiently, it uses:

  • Memory Heap → stores variables and objects
  • Call Stack → executes code

📞 Call Stack (Execution Area)

The Call Stack is where all synchronous code runs.

Example:

function a() {
  console.log("A");
}

function b() {
  a();
}

b();
Enter fullscreen mode Exit fullscreen mode

👉 Execution:

b() goes into stack
a() goes into stack
Executes and pops out

🌐 Web APIs (Async Handlers)

JavaScript cannot handle async operations directly.

Instead, it uses Web APIs (provided by browser or Node.js runtime):

setTimeout
setInterval
fetch
DOM events

👉 These run in the background.

📥 Queues (Where Callbacks Wait)

After async work is completed, callbacks are placed into queues:

** Microtask Queue (High Priority)**
Promise.then()
async/await
🕐 Task Queue (Low Priority)
setTimeout
setInterval
DOM events
🔁 Event Loop (The Brain)

The Event Loop continuously checks:↴

Is the Call Stack empty?
Execute ALL Microtasks
Then execute ONE Task from Task Queue

👉 This process repeats again and again.

Important Behavior (Very Common Interview Question)

setTimeout(() => console.log("Timeout"), 0);

Promise.resolve().then(() => console.log("Promise"));
Enter fullscreen mode Exit fullscreen mode

👉 Output:

Promise
Timeout
Enter fullscreen mode Exit fullscreen mode

✔ Because Microtasks run before Tasks

💡 One-Line Summary
JavaScript uses:

Call Stack + Web APIs + Queues + Event Loop

to handle asynchronous operations without blocking execution.

JavaScript Event Loop Explained Simply Diagram)

Top comments (0)