16. Event Emitterを作る

少し工夫が必要  - accepted / - tried

Node.jsにはEvent Emitterがあり, Facebookの実装 もあったけど今はarchiveされている。

Event Emitterを実装してください!

const emitter = new Emitter()
const sub1  = emitter.subscribe('event1', callback1)
const sub2 = emitter.subscribe('event2', callback2)

// 同じeventに同じcallbackが複数回登録できる
const sub3 = emitter.subscribe('event1', callback1)

emit(eventName, ...args) を使ってcallbackをトリガーできる

emitter.emit('event1', 1, 2);
// callback1 は二回呼ばれる

subscribe()release()を含めるオブジェクトを返す、サブスクリプションを取り消すことができる。

sub1.release()
sub3.release()
// 'event1'が発火されても、 
// callback1 は実行されない

考えを喋りながら。

(3)
(317)