2017-08-07 152 views

回答

3

也許最簡單的方法是將一個新的eventEmitter對象替換爲沒有在其上註冊監聽者的對象。

如果你真的需要清除所有註冊的事件,因爲其他的代碼有當前的發射器對象的引用,那麼你可以使用這樣的公共API做到這一點:其中在節點描述

emitter.removeAllListeners(); 

.js doc here。該函數可以傳遞一個事件名稱來刪除所有僅用於該事件的偵聽器,或者,如果沒有事件名稱被傳遞,它將刪除所有事件的所有偵聽器。僅供參考,您還可以使用emitter.eventNames()方法獲取任何已註冊事件處理程序的所有事件名稱,然後可以使用emitter.removeAllListeners(eventName)刪除任何給定事件名稱的所有偵聽器。因此,您也可以遍歷所有事件名稱,並刪除您想要的所有事件的所有偵聽器。

相關問題