WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Node.js · Basic · question 16 of 100

What is the difference between ’setTimeout’, ’setImmediate’, and ’process.nextTick’ in Node.js?

📕 Buy this interview preparation book: 100 Node.js questions & answers — PDF + EPUB for $5

In Node.js, ‘setTimeout‘, ‘setImmediate‘, and ‘process.nextTick‘ are functions used to control the flow of execution in an asynchronous manner. These functions differ in how they schedule the execution of the functions passed to them.

1. ‘setTimeout‘

‘setTimeout‘ is a global function used to execute a given function after a specified delay (in milliseconds). This is an approximate delay, which means that the actual delay may be longer depending on the event loop’s state. Here’s an example:

setTimeout(() => {
  console.log('Execute later after 1 second')
}, 1000);
console.log('Execute first');

The output will be:

Execute first
Execute later after 1 second

2. ‘setImmediate‘

‘setImmediate‘ is a Node.js specific function used to execute a given function at the **end** of the current event loop iteration. This means that the function passed to ‘setImmediate‘ will be executed after other callbacks in the current iteration have been processed. Here’s an example:

setImmediate(() => {
  console.log('Execute later after the current event loop iteration');
});
console.log('Execute first');

The output will be:

Execute first
Execute later after the current event loop iteration

3. ‘process.nextTick‘

‘process.nextTick‘ is also a Node.js specific function. It accepts a function as an argument and attaches it to the *next* iteration of the event loop. However, unlike ‘setTimeout‘ and ‘setImmediate‘, the function attached to ‘process.nextTick‘ will be executed **before** any other I/O events, this includes I/O callbacks and timers. Here’s an example:

process.nextTick(() => {
  console.log('Execute later before other I/O events in the next event loop iteration');
});
console.log('Execute first');

The output will be:

Execute first
Execute later before other I/O events in the next event loop iteration

In summary:

- ‘setTimeout‘ schedules a function to be executed after a specified delay.

- ‘setImmediate‘ schedules a function to be executed at the end of the current event loop iteration.

- ‘process.nextTick‘ schedules a function to be executed before other I/O events in the next iteration of the event loop.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Node.js interview — then scores it.
📞 Practice Node.js — free 15 min
📕 Buy this interview preparation book: 100 Node.js questions & answers — PDF + EPUB for $5

All 100 Node.js questions · All topics