bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Node.js/Node.js Tutorial
Node.js•Node.js Tutorial

Node.js Event Loop

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Node.js Event Loop?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___.log('First');
3Order

Put the learning moves in the order that makes the concept easiest to apply.

The event loop is what makes Node.
Why is the Event Loop Important?
How the Event Loop Works

What is the Event Loop?

The event loop is what makes Node.js non-blocking and efficient.

It handles asynchronous operations by delegating tasks to the system and processing their results through callbacks, allowing Node.js to manage thousands of concurrent connections with a single thread.

How the Event Loop Works

Node.js follows these steps to handle operations:

  • Execute the main script (synchronous code)
  • Process any microtasks (Promises, process.nextTick)
  • Execute timers (setTimeout, setInterval)
  • Run I/O callbacks (file system, network operations)
  • Process setImmediate callbacks
  • Handle close events (like socket.on('close'))

Example: Event Loop Order

console.log('First');
setTimeout(() => console.log('Third'), 0);
Promise.resolve().then(() => console.log('Second'));
console.log('Fourth');

This demonstrates the execution order

  • Sync code runs first ('First', 'Fourth')
  • Microtasks (Promises) run before the next phase ('Second')
  • Timers execute last ('Third')

Event Loop Phases

The event loop processes different types of callbacks in this order:

  • Timers : setTimeout , setInterval
  • I/O Callbacks : Completed I/O operations
  • Poll : Retrieve new I/O events
  • Check : setImmediate callbacks
  • Close : Cleanup callbacks (like socket.on('close') )

Note

Between each phase, Node.js runs microtasks (Promises) and process.nextTick callbacks.

Example: Event Loop Phases

console.log('1. Start');
// Next tick queue process.nextTick(() => console.log('2. Next tick')); // Microtask queue (Promise) Promise.resolve().then(() => console.log('3. Promise')); // Timer phase setTimeout(() => console.log('4. Timeout'), 0); // Check phase setImmediate(() => console.log('5. Immediate')); console.log('6. End');

The output will be

1. Start
6. End
2. Next tick
3. Promise
4. Timeout
5. Immediate

This shows the priority order: sync code > nextTick > Promises > Timers > Check phase.

Why is the Event Loop Important?

The event loop enables Node.js to handle thousands of concurrent connections with a single thread, making it perfect for:

  • Real-time applications
  • APIs and microservices
  • Data streaming
  • Chat applications

Summary

  • Node.js uses an event loop to handle async operations
  • Different types of callbacks have different priorities
  • Microtasks (Promises) run before the next event loop phase
  • This non-blocking model enables high concurrency

Previous

Node.js Architecture

Next chapter

Asynchronous

Start with Node.js Asynchronous Programming