干嘛的?
注册以及发射事件
如何创建 EventEmitter对象?
如下首先引入events模块,之后用new+ class名创建一个实例对象。之后就是绑定事件,以及后面的发射事件(就是激活事件)。
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
eventEmitter.on('event', () => {
console.log('an event occurred!');//an event occurred!
});
eventEmitter.emit('event');
上述还可以这么写
var events = require('events').EventEmitter;
// 创建 eventEmitter 对象
var eventEmitter = new events();
eventEmitter.on('event', () => {
console.log('an event occurred!');//an event occurred!
});
eventEmitter.emit('event');
再比如
下面这个例子setTimeou这个指的是1000ms以后向event对象发送some_event事件。
var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();
event.on('some_event', function() {
console.log('some_event 事件触发'); //some_event 事件触发
});
setTimeout(function() {
event.emit('some_event');
}, 1000);
同一事件绑定多个监听器
如下someEvent绑定了两个监听事件。
var events = require('events');
var emitter = new events.EventEmitter();
emitter.on('someEvent', function(arg1, arg2) {
console.log('listener1', arg1, arg2); //listener1 arg1 参数 arg2 参数
});
emitter.on('someEvent', function(arg1, arg2) {
console.log('listener2', arg1, arg2); //listener2 arg1 参数 arg2 参数
});
emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');
参考
Node.js EventEmitter | 菜鸟教程
nodejs 事件机制 - LittleMoon - 博客园
Nodejs学习 2 -- events事件处理EventEmitter - z742182637的博客 - CSDN博客