Schedules the "immediate" execution of the callback after I/O events' callbacks and before timers created using setTimeout() and setInterval() are triggered.
const fs = require('fs');
setImmediate(() => console.log('main setImmediate'));
setTimeout(() => console.log('main setTimeout'), 0);
fs.access('.', err => {
setTimeout(() => console.log('fs setTimeout'), 0);
setImmediate(() => console.log('fs setImmediate'));
});
process.nextTick(() => {
setTimeout(() => console.log('nextTick setTimeout'), 0);
setImmediate(() => console.log('nextTick setImmediate'));
});setImmediate(() => console.log('immediate'));
setTimeout(() => console.log('timeout 0'));
const t = Date.now();
while (Date.now() - t <= 1);setTimeout(()=>{
setImmediate(() => {
console.log('immediate 0');
setTimeout(() => console.log('timeout 3'), 0);
setImmediate(() => console.log('immediate 3'));
setTimeout(() => console.log('timeout 4'), 0);
setImmediate(() => console.log('immediate 4'));
const t = Date.now();
while (Date.now() - t <= 1);
}, 0);
setTimeout(() => {
console.log('timeout 0');
setTimeout(() => console.log('timeout 1'), 0);
setImmediate(() => console.log('immediate 1'));
setTimeout(() => console.log('timeout 2'), 0);
setImmediate(() => console.log('immediate 2'));
}, 0);
});setImmediate(() => {
setTimeout(()=> {
setImmediate(() => {
console.log('immediate 0');
setTimeout(() => console.log('timeout 3'), 0);
setImmediate(() => console.log('immediate 3'));
setTimeout(() => console.log('timeout 4'), 0);
setImmediate(() => console.log('immediate 4'));
const t = Date.now();
while (Date.now() - t <= 1);
}, 0);
setTimeout(() => {
console.log('timeout 0');
setTimeout(() => console.log('timeout 1'), 0);
setImmediate(() => console.log('immediate 1'));
setTimeout(() => console.log('timeout 2'), 0);
setImmediate(() => console.log('immediate 2'));
}, 0);
});
})