node EventEmitter类

干嘛的?

注册以及发射事件


node EventEmitter类_第1张图片
image.png

如何创建 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博客

你可能感兴趣的:(node EventEmitter类)