LearnThatStack Ace your next interview
Node.js · question
Question 2 of 59

Explain the concept of non-blocking I/O in Node.js.

beginner
← All Node.js questions
Re-explain
Visual ↓

Non-blocking I/O means Node.js starts an I/O operation and keeps running other code instead of waiting for it to finish. Reading a file, querying a database and calling another server all work this way. When the result is ready, the event loop runs the callback you passed, or resumes the function that awaited the promise.

// Non-blocking example
const fs = require('fs');

console.log('Start reading file');
fs.readFile('large-file.txt', (err, data) => {
    console.log('File read complete');
});
console.log('This executes immediately');

// Output: Start reading file, This executes immediately, File read complete

This executes immediately prints before File read complete, because readFile returns at once and its callback runs later. The main thread never sits idle waiting on a disk or the network. That is how a single Node.js process handles thousands of concurrent connections.

Rewriting in plainer words…

This answer doesn't lend itself to a diagram - it reads best . No credits were charged.

Why there's no diagram: “”

The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓

The diagram below the answer is the concept . Jump to it ↓

Tailored explanation · switch back to · ·
What should the new diagram focus on?
See it - interactive diagram
Non-blocking file read over time
Main thread
print Start
start the read
print next line
free, not blocked
callback runs
File read
reading the file
readFile returns
read finished
  • Main thread: print Start - The first log prints 'Start reading file'.
  • Main thread: start the read - readFile hands off the read and returns at once.
  • File read: reading the file - The disk work goes on while JavaScript keeps running.
  • readFile returns - It returns before the disk has read any data.
  • Main thread: print next line - 'This executes immediately' prints while the read runs.
  • Main thread: free, not blocked - The thread can run other code, such as new requests.
  • read finished - The data is ready, so the event loop can run the callback.
  • Main thread: callback runs - The event loop calls the function you passed to readFile.

The main thread keeps running while the file loads, so 'This executes immediately' prints before the callback prints 'File read complete'.

© LearnThatStack - diagrams may not be republished without permission.

Other questions have diagrams like this too. Sign in to ask for one where it's missing - it's free.

Create a free account
How well did you know this?
AI:

Saved in this browser - sign in to keep your review list.

How should your speech become text?

Listening… your words appear above as you speak - tap Stop when you're done.

Recording · cr - tap Stop & transcribe when you're done.

Transcribing with AI…

Voice:

Keep going - a few more words and AI can grade it.

Interview lens

Likely follow-ups, what you can say, and the weak answers to avoid.

Sign in free to open it Free account - the lens opens as soon as you're back.

Want a quick review of the fundamentals? See the Node.js cheatsheet.

← Back to all Node.js questions
Pro · $10/mo

51 of 59 Node.js answers are in Pro.

Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.

  • Full answers + code
  • AI explanations, simpler or deeper
  • 1,000 AI credits / month
  • Cancel anytime