В основе: Написать реализацию EventEmitter с некоторыми улучшениями и примесь для использования его API. Сам EventEmitter - глобальный синглетон.
API класса:
- emit(eventName, payload): инициирует событие eventName с данными payload
- on(eventName, handler): подписывает обработчик события handler на событие eventName.
- off(eventName, handler): отписывает обработчик события handler от события eventName
Пример использования:
const EventEmitter = ...