首頁  >  問答  >  主體

Node.js中自定义EventEmitter 的必要性

迷茫迷茫2713 天前613

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 13:10:19

    EventEmitter 解決的問題就是時間的發布者不需要關心誰監聽這個事件,事件的監聽者也不關心誰發出這個事件,只要它們在同一個 EventEmitter 物件上進行 emit 和 on 即可。這樣的設計會顯著地減少事件的發布者和監聽者之間的聯繫,從而降低複雜度。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:10:19

    1. 當你的事件發送方和消費方都在同一個模組中,不需要通知其它模組或其它模組也關心其中的事件時,用callback就可以把事件發送/監聽的事做完了

    2. 而使用EventEmitter的目的在於減少模組之間的耦合度
      模組之間關注EventEmitter而不是去關注事件是由哪個模組發送出來的;同時發送Event的模組也不關心我發出的事件有沒有回應,有沒有模組需要這個事件,這就能做到模組的職責明確,每個模組只處理自己該完成的工作

    3. 如果簡單的execute callback的話,那麼發送事件/產生事件的一方必須知道我要把事件發給誰,呼叫哪個模組的callback。而每當有一個新的模組需要這個事件通知時,就必須在發送事件方修改,而消費事件方並不能做什麼

    回覆
    0
  • 取消回覆