【扩展】EventEmitter模块
这个模块为扩展课程,我们不会直接用,但是可能会出现在我们的代码里
EventEmitter是nodejs事件管理的通用机制,我们前面用on注册事件的时候,用的都是统一的接口,就是这个EventEmitter模块
javascript
const { EventEmitter } = require("events");
const e = new EventEmitter(); //创建一个事件处理对象,可以注册事件和触发事件
e.on("eventName", () => {
console.log("这个事件被触发了");
});
e.once("eventName", () => {
console.log("这个函数只触发一次,第一次触发后移除这个函数");
});
function fn() {
console.log("test");
}
e.on("eventName", fn);
e.emit("eventName"); //触发eventName事件,依次运行注册的函数
e.emit("eventName");
e.emit("eventName"); //可以触发多次
e.off("eventName", fn); //可以移除事件处理函数他在内部维护了一个对象,对象的属性名就是事件名,对象的属性值都是数组,就是这个事件的函数队列,当我们注册事件的时候,相当于给对象添加一个属性,绑定函数的时候,就是给这个属性的数组里添加一个函数,当调用的时候就是依次执行数组里的函数