Реализуйте класс EventEmitter с методами:
on(event, handler) — подписаться на событиеoff(event, handler) — отписатьсяemit(event, ...args) — вызвать все обработчики события с аргументамиonce(event, handler) — подписаться на одно срабатываниеconst ee = new EventEmitter();
ee.on('click', (x) => console.log(x));
ee.emit('click', 42); // => 42
on + emit
42
once + emit twice
вызов только один раз