Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。
在nodejs的世界里,一切都是基于事件完成的,而EventEmitter 的核心就是事件触发与事件监听器功能的封装。
我们可以通过require(“events”);来访问该模块,例如:
// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
/**
* Created by Richard on 7/14/16.
*/
const events = require('events');
const eventEmitter = new events.EventEmitter();
eventEmitter.on('my_event', () => {
"use strict";
console.log('事件被触发了');
});
setTimeout(()=>{
"use strict";
eventEmitter.emit('my_event');
}, 3000);
EventEmitter 对象如果在实例化时发生错误,会触发 ‘error’ 事件。
EventEmitter 对象当添加新的监听器时,’newListener’ 事件会触发。
EventEmitter 对象当监听器被移除时,’removeListener’ 事件被触发。
同样我们也可指定一个名字的两个监听器:
//event.js 文件
var events = require('events');
var emitter = new events.EventEmitter();
emitter.on('someEvent', function(arg1, arg2) {
console.log('listener1', arg1, arg2);
});
emitter.on('someEvent', function(arg1, arg2) {
console.log('listener2', arg1, arg2);
});
emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');