In the snippet below, what is the exact print order and why?
const fs = require('fs');
fs.readFile(__filename, () => {
console.log('poll-cb');
setImmediate(() => console.log('immediate'));
Promise.resolve().then(() => console.log('promise'));
process.nextTick(() => console.log('nextTick'));
});