Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: Event Emitter, Observer pattern, Node.js, events, listeners

Как работает Event Emitter?

Вопрос проверяет понимание паттерна Observer и механизма событий в Node.js, необходимого для работы с асинхронными потоками данных.

Короткий ответ

Event Emitter — это класс из модуля events в Node.js, реализующий паттерн Observer. Он позволяет объектам генерировать события и подписываться на них. Вы создаете экземпляр, используете метод on() для подписки на событие и emit() для его вызова. Когда событие происходит, все подписанные функции (listeners) выполняются синхронно в порядке регистрации.

Длинный ответ

Что такое Event Emitter?

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!

Где применяется?

  • В Node.js: потоки (Streams), HTTP-серверы, работа с файлами.
  • В браузере: DOM-события (клики, нажатия клавиш) — хотя там используется другой API, концепция та же.
  • В архитектуре приложений: для слабой связанности компонентов, когда один модуль уведомляет другие о своих изменениях.

Вывод

Event Emitter — это фундаментальный инструмент для создания асинхронных, событийно-ориентированных систем. Его стоит применять, когда нужно организовать реакцию на действия или изменения состояния без жесткой привязки между отправителем и получателем, что делает код более гибким и расширяемым.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

Ключевые слова

#Event Emitter

#Observer pattern

#Node.js

#events

#listeners

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию