16. create an Event Emitter
Share
medium - accepted / - tried
There is Event Emitter in Node.js, Facebook once had its own implementation but now it is archived.
You are asked to create an Event Emitter Class
const emitter = new Emitter()
It should support event subscribing
const sub1 = emitter.subscribe('event1', callback1)const sub2 = emitter.subscribe('event2', callback2)// same callback could subscribe // on same event multiple timesconst sub3 = emitter.subscribe('event1', callback1)
emit(eventName, ...args)
is used to trigger the callbacks, with args relayed
emitter.emit('event1', 1, 2);// callback1 will be called twice
Subscription returned by subscribe()
has a release()
method that could be used to unsubscribe
sub1.release()sub3.release()// now even if we emit 'event1' again, // callback1 is not called anymore