Модуль событий Node.js предоставляет класс EventEmitter.
Вevents
module предоставляет нам класс EventEmitter, который является ключом к работе с событиями в Node.
Я опубликовал полную статью об этом, поэтому здесь я просто опишу API без дополнительных примеров того, как его использовать.
const EventEmitter = require('events')
const door = new EventEmitter()
Слушатель событий ест свой собственный корм для собак и использует эти события:
newListener
когда добавлен слушательremoveListener
когда слушатель удаляется
Вот подробное описание наиболее полезных методов:
emitter.addListener()
emitter.emit()
emitter.eventNames()
emitter.getMaxListeners()
emitter.listenerCount()
emitter.listeners()
emitter.off()
emitter.on()
emitter.once()
emitter.prependListener()
emitter.prependOnceListener()
emitter.removeAllListeners()
emitter.removeListener()
emitter.setMaxListeners()
emitter.addListener()
Псевдоним дляemitter.on()
.
emitter.emit()
Излучает событие. Он синхронно вызывает все прослушиватели событий в том порядке, в котором они были зарегистрированы.
emitter.eventNames()
Вернуть массив строк, представляющих события, зарегистрированные в текущем EventListener:
door.eventNames()
emitter.getMaxListeners()
Получите максимальное количество слушателей, которое можно добавить к объекту EventListener, которое по умолчанию равно 10, но может быть увеличено или уменьшено с помощьюsetMaxListeners()
door.getMaxListeners()
emitter.listenerCount()
Получите количество слушателей события, переданного в качестве параметра:
door.listenerCount('open')
emitter.listeners()
Получает массив слушателей события, переданного в качестве параметра:
door.listeners('open')
emitter.off()
Псевдоним дляemitter.removeListener()
added in Node 10
emitter.on()
Добавляет функцию обратного вызова, которая вызывается при возникновении события.
Использование:
door.on('open', () => {
console.log('Door was opened')
})
emitter.once()
Добавляет функцию обратного вызова, которая вызывается, когда событие генерируется в первый раз после его регистрации. Этот обратный вызов будет вызываться только один раз и никогда больше.
const EventEmitter = require('events')
const ee = new EventEmitter()
ee.once(‘my-event’, () => {
//call callback function once
})
emitter.prependListener()
Когда вы добавляете слушателя, используяon
или жеaddListener
, он добавляется последним в очереди слушателей и вызывается последним. С помощьюprependListener
он добавляется и вызывается перед другими слушателями.
emitter.prependOnceListener()
Когда вы добавляете слушателя, используяonce
, он добавляется последним в очереди слушателей и вызывается последним. С помощьюprependOnceListener
он добавляется и вызывается перед другими слушателями.
emitter.removeAllListeners()
Удаляет всех слушателей объекта-эмиттера событий, слушающих определенное событие:
door.removeAllListeners('open')
emitter.removeListener()
Удалить определенного слушателя. Вы можете сделать это, сохранив функцию обратного вызова в переменной при добавлении, чтобы вы могли ссылаться на нее позже:
const doSomething = () => {}
door.on('open', doSomething)
door.removeListener('open', doSomething)
emitter.setMaxListeners()
Устанавливает максимальное количество слушателей, которое можно добавить к объекту EventListener, которое по умолчанию равно 10, но может быть увеличено или уменьшено.
door.setMaxListeners(50)
Скачать мою бесплатнуюСправочник по Node.js
Дополнительные руководства по узлам:
- Введение в менеджер пакетов npm
- Введение в Node.js
- HTTP-запросы с использованием Axios
- Где разместить приложение Node.js
- Взаимодействовать с Google Analytics API с помощью Node.js
- Средство выполнения пакетов npx Node
- Руководство по package.json
- Где npm устанавливает пакеты?
- Как обновить Node.js
- Как использовать или выполнить пакет, установленный с помощью npm
- Файл package-lock.json
- Семантическое управление версиями с использованием npm
- Следует ли зафиксировать папку node_modules в Git?
- Обновите все зависимости Node до последней версии
- Разбор JSON с помощью Node.js
- Найдите установленную версию пакета npm
- Node.js потоки
- Установите старую версию пакета npm
- Получить текущую папку в Node
- Как зарегистрировать объект в Node
- Предоставление функциональности из файла узла с помощью экспорта
- Различия между узлом и браузером
- Сделайте HTTP-запрос POST с помощью Node
- Получить данные тела HTTP-запроса с помощью Node
- Буферы узлов
- Краткая история Node.js
- Как установить Node.js
- Сколько JavaScript вам нужно знать, чтобы использовать Node?
- Как использовать Node.js REPL
- Узел, принимать аргументы из командной строки
- Вывод в командную строку с помощью Node
- Принять ввод из командной строки в Node
- Удаление пакетов npm с помощью `npm uninstall`
- npm глобальные или локальные пакеты
- зависимости npm и devDependencies
- Цикл событий Node.js
- Понимание process.nextTick ()
- Понимание setImmediate ()
- Эмиттер событий узла
- Создайте HTTP-сервер
- Выполнение HTTP-запросов с помощью Node
- Модуль Node fs
- HTTP-запросы в Node с использованием Axios
- Чтение файлов с помощью Node
- Пути к файлам узлов
- Написание файлов с помощью Node
- Статистика файла узла
- Работа с файловыми дескрипторами в Node
- Работа с папками в Node
- Модуль пути к узлу
- Модуль Node http
- Использование WebSockets с Node.js
- Основы работы с MySQL и Node
- Обработка ошибок в Node.js
- Путеводитель по мопсу
- Как читать переменные среды из Node.js
- Как выйти из программы Node.js
- Модуль Node os
- Модуль событий узла
- Узел, разница между разработкой и производством
- Как проверить, существует ли файл в Node.js
- Как создать пустой файл в Node.js
- Как удалить файл с помощью Node.js
- Как получить дату последнего обновления файла с помощью Node.js
- Как определить, сегодня ли дата в JavaScript
- Как записать объект JSON в файл в Node.js
- Почему вам следует использовать Node.js в вашем следующем проекте?
- Запускайте веб-сервер из любой папки
- Как использовать MongoDB с Node.js
- Используйте Chrome DevTools для отладки приложения Node.js
- Что такое pnpm?
- Список параметров среды выполнения Node.js v8
- Как исправить ошибку «Отсутствует доступ для записи» при использовании npm
- Как включить модули ES в Node.js
- Как создать дочерний процесс с помощью Node.js
- Как получить в Express и разобранное, и необработанное тело
- Как обрабатывать загрузку файлов в Node.js
- Каковы одноранговые зависимости в модуле Node?
- Как написать файл CSV с помощью Node.js
- Как читать CSV-файл с помощью Node.js
- Модули ядра узла
- Увеличение номеров сразу нескольких папок с помощью Node.js
- Как распечатать холст по URL-адресу данных
- Как создать и сохранить изображение с помощью Node.js и Canvas
- Как скачать изображение с помощью Node.js
- Как массово переименовывать файлы в Node.js
- Как получить имена всех файлов в папке в Node
- Как использовать обещания и ожидания с функциями обратного вызова Node.js
- Как протестировать пакет npm локально
- Как проверить текущую версию Node.js во время выполнения
- Как использовать Sequelize для взаимодействия с PostgreSQL
- Обслуживайте HTML-страницу с помощью Node.js
- Как устранить ошибку `util.pump is not a function` в Node.js