Skip to content

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 context optional - контекст для callback функции

Добавление callback функции в список прослушивателей

ts
const ee = new EventEmitter();
ee.on("log", console.log); 

once(event, fn, context?)

  • Arg event - название события
  • Arg fn - callback функция при вызове события
  • Arg context optional - контекст для callback функции

Работает по принципу добавления обычного прослушивателя через on(), только после вызова callback функции, прослушиватель автоматически удаляется из списка

ts
const ee = new EventEmitter();
ee.once("error", console.error); 

emit(event, ...args?)

  • Arg event - название события
  • Arg ...args optional - неограниченное кол-во аргументов, которые будут переданны в 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 fn optional - callback функция при вызове события
  • Arg context optional - контекст для callback функции
  • Arg once optional

Удаление одного или всех слушателей для определенного event

ts
ee.off("log", console.log);
ee.off("log");

removeAllListeners(event?)

  • Arg event optional - название события

Удаление всех событий в экземпляре EventEmitter.

В случае если передан аргумент event, то удалятся все прослушиватели только для данного event

eventNames()

Возвращает список всех event зарегестрированных в текущем экземпляре

listeners(event)

  • Arg event - название события

Возвращает список всех зарегистрированных слушателей для указанного event

listenerCount(event)

  • Arg event - название события

Возвращает количество зарегистрированных слушателей для указанного event