Выбор ответа Middle Event loop и libuv обновлено
Порядок фаз event loop
Вопрос
В каком порядке event loop Node.js проходит основные фазы за один оборот?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: timers → poll → check → close callbacks. Порядок: timers, pending callbacks, idle/prepare, poll, check, close callbacks.
Варианты ответа
- poll → timers → check → close
- timers → poll → check → close callbacksправильный ответ
- check → timers → poll → close callbacks
- timers → check → poll → close callbacks
Разбор
Порядок: timers, pending callbacks, idle/prepare, poll, check, close callbacks. Отсюда следствие: внутри I/O-колбэка (poll) setImmediate (check) всегда раньше таймера.
Остальные варианты переставляют фазы. Например, если бы check шёл до poll, setImmediate из I/O-колбэка ждал бы следующего оборота.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Что выведет: nextTick, промис, таймер, immediate
Следующий вопрос
Когда Node.js завершает процесс
Термины по теме
Ещё по теме «Event loop и libuv»
- Тяжёлый цикл без блокировки event loop
- Код-ревью: что блокирует event loop
- Что блокирует event loop
- Объясни event loop в Node.js
- setImmediate и setTimeout внутри I/O
- setTimeout(0) против setImmediate на верхнем уровне
- Что такое libuv
- Рекурсивный process.nextTick