關於EventEmitter的用法

2021-10-04 21:34:27 字數 965 閱讀 8607

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 ...