Appearance
Events
ts
import { emitter, EventEmitter } from "@dpg.gg/core/events";Overview
Система событий построена на библиотеке eventemitter3 без внесения изменений. Это означает что API EventEmitter полностью соответсвует стандартному поведению eventemitter3 и в частности поведению NodeJS.
На основе класса EventEmitter реализована бОльшая часть логики core библиотеки.
emitter - это глобальный экземпляр EventEmitter доступ к которому имеется у всех компонентов приложения
ts
const ee = new EventEmitter();
ee.on("log", console.log);
// ...
ee.emit("log", "Some message");Methods
addListener(event, fn, context?)
on() - alias
- Arg
event- название события - Arg
fn- callback функция при вызове события - Arg
contextoptional - контекст для callback функции
Добавление callback функции в список прослушивателей
ts
const ee = new EventEmitter();
ee.on("log", console.log); once(event, fn, context?)
- Arg
event- название события - Arg
fn- callback функция при вызове события - Arg
contextoptional - контекст для callback функции
Работает по принципу добавления обычного прослушивателя через on(), только после вызова callback функции, прослушиватель автоматически удаляется из списка
ts
const ee = new EventEmitter();
ee.once("error", console.error); emit(event, ...args?)
- Arg
event- название события - Arg
...argsoptional - неограниченное кол-во аргументов, которые будут переданны в callback функцию
Выполняет вызов всех слушателей, зарегистрированных для данного event
ts
const ee = new EventEmitter();
ee.on("log", console.log);
//...
ee.emit("log", "Some message"); removeListener(event, fn?, context?, once?)
off() - alias
- Arg
event- название события - Arg
fnoptional - callback функция при вызове события - Arg
contextoptional - контекст для callback функции - Arg
onceoptional
Удаление одного или всех слушателей для определенного event
ts
ee.off("log", console.log);
ee.off("log");removeAllListeners(event?)
- Arg
eventoptional - название события
Удаление всех событий в экземпляре EventEmitter.
В случае если передан аргумент event, то удалятся все прослушиватели только для данного event
eventNames()
Возвращает список всех event зарегестрированных в текущем экземпляре
listeners(event)
- Arg
event- название события
Возвращает список всех зарегистрированных слушателей для указанного event
listenerCount(event)
- Arg
event- название события
Возвращает количество зарегистрированных слушателей для указанного event