События в Node.js

Функционал Node.js в основном применяет асинхронную событийную архитектуру, которая использует специальные объекты-эмиттеры для генерации различных событий, которые обрабатываются специальными функциями-обработчиками или слушателями событий. Все объекты, которые генерируют события, представляют экземпляры класса EventEmitter.

Класс EventEmitter определяется и предоставляется модулем событий, для подключения которого необходимо использовать require() или import:

Например:

С помощью функции eventEmitter.on() к определенному событию по имени цепляется функция-обработчик. Причем для одного события можно указать множество обработчиков, которые помещаются в массив обработчиков для этого события. Метод emitter.emit(eventName[, ...args]) синхронно вызывает каждого из слушателей, зарегистрированных для события с именем eventName, в том порядке, в котором они были зарегистрированы, передавая каждому предоставленные аргументы.

При вызове события в качестве второго параметра в метод emitter.emit(eventName[, ...args]) можно передавать аргументы, которые передаются в функцию обработчика события, например:

Наследование от EventEmitter

В приложении мы можем оперировать сложными объектами, для которых также можно определять события, но для этого их надо связать с объектом EventEmitter. Например:

 

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.