#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
3 min read
Question 16 of 62easy

How do timers work in Node.js?

Understanding setTimeout, setInterval, and setImmediate.

What You'll Learn

  • Timer functions
  • Clearing timers
  • Timer phases in event loop

Timer Functions

code.jsJavaScript
// setTimeout - execute once after delay
const timeout = setTimeout(() => {
  console.log('After 1 second');
}, 1000);

// setInterval - execute repeatedly
const interval = setInterval(() => {
  console.log('Every 2 seconds');
}, 2000);

// setImmediate - execute after I/O
setImmediate(() => {
  console.log('After I/O');
});

// Clear timers
clearTimeout(timeout);
clearInterval(interval);

Timer Methods

code.jsJavaScript
const timer = setTimeout(() => {}, 1000);

// Prevent timer from keeping process alive
timer.unref();

// Re-reference timer
timer.ref();

// Refresh timer (reset countdown)
timer.refresh();

Async Timers (Node 16+)

code.jsJavaScript
const { setTimeout, setInterval } = require('timers/promises');

// Promise-based setTimeout
await setTimeout(1000);
console.log('After 1 second');

// With value
const result = await setTimeout(1000, 'done');
console.log(result); // 'done'

// Async iteration with setInterval
for await (const _ of setInterval(1000)) {
  console.log('Every second');
  if (shouldStop) break;
}

Execution Order

code.jsJavaScript
setTimeout(() => console.log('timeout'), 0);
setImmediate(() => console.log('immediate'));

// In main module: order is non-deterministic
// In I/O callback: setImmediate always first