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).