1 var eventemitter = require("events").eventemitter;
2 var ee = new eventemitter();
3 ee.on("someevent", function () );
6 7 ee.emit("someevent");
emit方法可以觸發多個同樣的事件,比如我們的頁面中繫結了多個同樣的someeven事件。
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.on("someevent", function () );
ee.emit("someevent");
上面繫結的11個someevent事件都會觸發,但是控制台會有一條警告,因為事件物件預設監聽的事件數量是10個,我們可以通過**設定改變這個數值,例如:
1 ee.setmaxlisteners(20);事件物件還有其他方法:
1,once()監聽一次
2,removelistener , removealllisteners() 移除監聽事件/移除所有監聽的事件
node核心EventEmitter的應用總結
eventemitter是node中應用非常廣泛,不管是框架,還是腳手架,還是外掛程式都可以看到eventemitter的身影。比如我們去檢視vue,react,webpack,egg,koa等框架或者外掛程式的原始碼,都可以看到內部使用到了eventemitter。那麼到底什麼是eventemit...
EventEmitter的前端JS實現
on event,listener 為指定事件註冊乙個 接受乙個字串 event 和乙個 函式。emit event,arg1 arg2 按 的順序執行執行每個 addlistener event,listener on的同名函式 alias once event,listener 和on類似,但只...
EventEmitter可能導致重複註冊和重複觸發
eventemitter在同乙個函式註冊到同乙個event name時會導致重複觸發 例如下面的 var events require events let ev1 ev 1 let onev1 a,b var emitter new events.eventemitter console.log ...