nodejs 里所有事件类型基本都是由 events 模块开提供, js 是异步执行的,在很多情况下需要同步执行, 这时可以使用 events 模块来实现同步
event 模块主要是 EventEmitter 类, 使用 event.EventEmitter 类来实例化一个事件对象
1 | let event = require("events"); // 引入events模块 |
注册监听事件
接着使用事件对象的 addListener, on ,once 方法添加事件监听函数. on 是 addListener 的别名. 第二个参数的 this 对象指向 emit, 当是箭头函数时 this 被绑定.
1 | emit.addListener("eventNme", (res) => { |
对同一事件对象的同一事件名注册的监听函数默认不能超过十个,可以调用事件对象的 setMaxListener(n) 来修改此限制,其中 n 为正整数.’emit.setMaxListener(10)’
触发错误监听函数
1 | emit.on("error", callBack); |
在实列运行区间发生错误时触发改事件.
触发事件
触发事件比较简单一点,调用事件对象的 emit 方法就可以
1 | emit.emit('eventName'[,arg1][,arg2]....) //第一个参数为发射的事件名,后面的参数是传递给监听函数的参数 |
移除事件的监听函数
移除事件监听函数共有个方法, 事件实例的 removeListener 和 removeAllListener
1 | let event = require("events"); |