Почему Event Loop пропускает очередь poll и сразу выполняет check? Это же не логично все очереди он выполняеет по порядку, а птотом бац и перескакивает. Вот зачем и для чего не понятно.
Например вот в таком коде он сначала пойдет и выполнит setImmidiate вместо readFile
const fs = require('fs');
console.log('START');
setTimeout(() => console.log('setTimeout'), 0); //Попал в очередь timers 1)timers set intervals
setImmediate(() => console.log('setImmediate')); //Попал в очередь check 7
fs.readFile( 'eventloop.txt', () => { //попл в очередь poll
setTimeout(() => console.log('readfile setTimeout'), 0);
setImmediate(() => console.log('readFile setImmidiate'));
process.nextTick(() => console.log('read file Next Tick'));
}
)
Promise.resolve() // Попал в очередь other microtask que
.then(() => {
console.log('Promise')
process.nextTick(() => console.log('Promise Next Tick'));
})
process.nextTick(() => console.log('nextTick'));
setTimeout(() => console.log('setTimeout 2'), 0); //Попал в очередь timers 1)timers set intervals все node.js пропарсилась;
console.log('end')
Вот лог
START
end
nextTick
Promise
Promise Next Tick
setTimeout
setTimeout 2
setImmediate
read file Next Tick
readFile setImmidiate
readfile setTimeout
и почму он такой, а не такой
START
end
nextTick
Promise
Promise Next Tick
setTimeout
setTimeout 2
read file Next Tick
readFile setImmidiate
readfile setTimeout
setImmediate