167
Top Answer
The event loop has 6 phases:
Phases (in order)
- timers - Execute setTimeout/setInterval callbacks
- pending callbacks - Execute I/O callbacks deferred from previous cycle
- idle, prepare - Internal use only
- poll - Retrieve new I/O events
- check - Execute setImmediate callbacks
- close callbacks - Handle close events (socket.on('close'))
setTimeout(() => console.log('timeout'), 0);
setImmediate(() => console.log('immediate'));
process.nextTick(() => console.log('nextTick'));
Promise.resolve().then(() => console.log('promise'));
// Output:
// nextTick
// promise
// timeout (or immediate)
// immediate (or timeout)
Priority
process.nextTick()- runs between phases- Microtasks (Promises) - after nextTick
- Macrotasks (setTimeout, setImmediate)
NodeJSGuru