#javascript #node.js #event-loop
#javascript #node.js #цикл событий
Вопрос:
Окружающая среда: — NodeJS 14.15.0
В следующем коде :-
const sleep_st = (t) => new Promise((r) => setTimeout(r, t));
const sleep_im = () => new Promise((r) => setImmediate(r));
(async () => {
setImmediate(() => console.log(1));
console.log(2);
await sleep_st(0);
setImmediate(() => console.log(3));
console.log(4);
await sleep_im();
setImmediate(() => console.log(5));
console.log(6);
await 1;
setImmediate(() => console.log(7));
console.log(8);
})();
Некоторое время вывод :-
2 1 4 3 6 8 5 7
Но иногда :- 2 4 1 3 6 8 5 7
Комментарии:
1. Это зависит от операционной системы, загрузки процессора и т. Д. Он никогда не будет одинаковым для каждого раза.
2. Каким вы ожидали получить результат и почему?
3. Я ожидал, что это будет 2 1 4 3 6 8 5 7
4. Потому что у меня сложилось впечатление, что этап setImmediate выполняется до фазы таймера