Что выведет код Middle Асинхронные паттерны обновлено
Что выведет: микрозадачи внутри таймера
Вопрос
Напиши вывод CommonJS-скрипта в Node.js 22, по строке на вызов console.log.
setTimeout(() => {
console.log('t1');
process.nextTick(() => console.log('tick'));
Promise.resolve().then(() => console.log('promise'));
}, 0);
setTimeout(() => console.log('t2'), 0);
console.log('sync');
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: sync, t1, tick, promise, t2. Сначала синхронный sync.
Что выведет
sync
t1
tick
promise
t2
Разбор
Сначала синхронный sync. В фазе timers выполняется первый таймер: t1. После каждого колбэка таймера Node опустошает очереди nextTick и микрозадач, поэтому tick и promise выводятся до второго таймера. Затем t2.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Что выведет: await, then, nextTick и таймер
Следующий вопрос
Executor промиса выполняется сразу