AceDevHub
Advanced Node.js Interview QuestionsAdvancedCode Output

Node.js · Question 86

What is the output of nextTick vs setImmediate in Node.js?

Direct answer

Outside I/O: sync, nextTick, setImmediate — nextTick runs before the event loop continues to the check phase where setImmediate fires; inside an I/O callback, setImmediate often runs before setTimeout(0).

Two snippets cover top-level vs I/O callback context — interviewers may ask either variant (Q6, Q7).

nexttick-setimmediate-top.mjs
console.log("sync");

process.nextTick(() => console.log("nextTick"));
setImmediate(() => console.log("setImmediate"));

setTimeout(() => console.log("timeout"), 0);
Output
sync
nextTick
timeout
setImmediate

Note: timeout vs setImmediate order can vary slightly by Node version at top level — inside fs.readFile callback, setImmediate always runs before setTimeout(0).

nexttick-setimmediate-io.mjs
import fs from "node:fs";

fs.readFile(import.meta.url, () => {
  console.log("readFile callback");
  process.nextTick(() => console.log("nextTick"));
  setImmediate(() => console.log("setImmediate"));
  setTimeout(() => console.log("timeout"), 0);
});

console.log("sync");
Output
sync
readFile callback
nextTick
setImmediate
timeout