Are all Node.js callback functions asynchronous?

are all Node.js callback functions made asynchronous/non-blocking?

No. Only I/O is usually asynchronous, but many other callbacks are synchronous. Always check the docs.

Examples of async functions:

  • Async Filesystem access (they have sync counterparts without callbacks, though)
  • Timers (setTimeout)
  • process.nextTick, setImmediate
  • most database connections
  • network connections
  • Promises

Examples of sync callbacks:

  • EventEmitter (depends on when the event is fired)
  • Array iteration methods like forEach
  • Array sort comparator callbacks
  • String replace match callbacks

See also Are all javascript callbacks asynchronous? If not, how do I know which are? (including some other examples).

Leave a Comment