Вопрос проверяет понимание паттерна Observer и механизма событий в Node.js, необходимого для работы с асинхронными потоками данных.
Event Emitter — это встроенный класс в Node.js из модуля events, который реализует паттерн Observer (Наблюдатель). Он позволяет объектам (эмиттерам) генерировать именованные события, а другим объектам (слушателям) подписываться на эти события и реагировать на них. Это основа для построения асинхронных, событийно-ориентированных приложений.
Принцип работы прост: вы создаете экземпляр EventEmitter, регистрируете функции-обработчики (listeners) для определенных событий с помощью метода on() или addListener(). Затем, когда происходит какое-то действие, вы вызываете метод emit() с именем события и, опционально, аргументами. Все зарегистрированные слушатели этого события вызываются синхронно в том порядке, в котором они были добавлены.
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
// Подписываемся на событие 'greet'
myEmitter.on('greet', (name) => {
console.log(`Hello, ${name}!`);
});
// Генерируем событие
myEmitter.emit('greet', 'Alice'); // Вывод: Hello, Alice!Event Emitter — это фундаментальный инструмент для создания асинхронных, событийно-ориентированных систем. Его стоит применять, когда нужно организовать реакцию на действия или изменения состояния без жесткой привязки между отправителем и получателем, что делает код более гибким и расширяемым.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию