What is the Node.js event loop

· Category: Node.js

Short answer

The event loop is a single-threaded mechanism in Node.js that manages asynchronous callbacks by continuously checking for pending operations and executing their callbacks when they complete.

How it works

Node.js delegates expensive operations like file system access and network requests to the operating system or thread pool. When these operations finish, their callbacks are placed in queues. The event loop continuously checks these queues and pushes callbacks onto the call stack when it is empty. The loop runs through several phases including timers, I/O callbacks, idle/prepare, poll, check, and close callbacks.

Example

console.log('Start');
setTimeout(() => console.log('Timeout'), 0);
console.log('End');
// Output: Start, End, Timeout

Even with a zero delay, the timeout callback executes after synchronous code because it must wait for the event loop cycle.

Why it matters

Understanding the event loop helps you write efficient, non-blocking code. Misunderstanding it leads to bugs like blocking the main thread with heavy computation, which freezes your entire application. Worker threads can offload CPU-intensive tasks to prevent this.