Выбор ответа Middle Асинхронные паттерны обновлено
EventEmitter синхронный или нет
Вопрос
Что выведет код?
const { EventEmitter } = require('node:events');
const e = new EventEmitter();
e.on('x', () => console.log('1'));
e.emit('x');
console.log('2');
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 1 2. emit вызывает всех слушателей синхронно, по порядку подписки, и возвращается только после них.
Варианты ответа
2 11, а2только после следующего тика1 2правильный ответ- Порядок не определён
Разбор
emit вызывает всех слушателей синхронно, по порядку подписки, и возвращается только после них. Поэтому 1, потом 2.
2 1было бы, если бы emit откладывал вызов, какsetImmediate.- Никаких отложенных тиков здесь нет, порядок строго определён.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.