Node.js之 EventEmitter简介


摘要:
下文讲述Node.js中 EventEmitter对象



一、EventEmitter简介

Node.js中 events 模块只提供了一个对象: events.EventEmitter。
EventEmitter对象的功能为:事件启动和事件监听
EventEmitter监听的事件可由 一个事件名称和N个参数组成
EventEmitter对象可以监听无数个事件



二、EventEmitter常见API说明

1. EventEmitter.on(event, listener)
为指定事件注册一个监听器和一个回调函数
2. EventEmitter.addListener(event, listener)
为指定事件注册一个监听器和一个回调函数
3. EventEmitter.emit(event, [arg1], [arg2], […])
启动指定事件,并输入相应参数至回调函数中
4. EventEmitter.once(event, listener)
为指定事件注册一个单次监听器,此监听器只可运行一次
5. EventEmitter.removeListener(‘eventName’, callback);
移除指定事件监听器
6. EventEmitter.removeAllListeners([event])
移除所有事件及事件所对应的监听器
7. EventEmitter特殊事件 error
通常我们需要为error事件定义对应的回调函数,方便程序出现错误时,进行相应的回调操作


例:

//引入events模块
var e = require('events'); 

//实例化EventEmitter对象
var eventNewEmitter = new e.EventEmitter(); 


//注册监听事件
eventNewEmitter.on('event1', function(arg1, arg2,arg3) { 
    console.log('监听1:', arg1, arg2,arg3); 
}); 


//注册监听事件
eventNewEmitter.on('event1', function(arg1, arg2) { 
 console.log('监听2:', arg1, arg2); 
}); 

//运行事件1
eventNewEmitter.emit('event1', 'maomao365.com', 'node.js教程','参数3'); 


//运行事件2
eventNewEmitter.emit('event1', 'maomao365.com_', 'node.js教程_');