npm i event-emitters-class
import EventEmittersClass from 'event-emitters-class'
/**
* Отвечает за события активирующие бизнес-логику
* Прототип необходимо передавать если функции слушатели должны выполняться в контексте
*/
class BusinessLogicEmitters extends EventEmittersClass {
constructor(proto?: any) {
super(proto);
}
}
export default new BusinessLogicEmitters()
import BusinessLogicEmitters from 'BusinessLogicEmitters'
BusinessLogicEmitters.addListeners('onClickBtn', (params) => console.log('click btn id:', params.id))
import BusinessLogicEmitters from 'BusinessLogicEmitters'
BusinessLogicEmitters.emit('onClickBtn', { id: 1 }) // log > click btn id: 1
// remove listener
BusinessLogicEmitters.removeListener('onClickBtn', (params) => console.log('click btn id:', params.id))