EventEmitter

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','agr1参数','arg2参数');

运行结果:

PS D:\Demo1> node event.js
listener1 agr1参数 arg2参数
listener2 agr1参数 arg2参数

EventEmitter其他属性介绍:

  1. addListener(event,listener):为指定事件添加一个监听器到监听器数组的尾部。
  2. on(event,listener):为指定事件注册一个监听器,接受一个字符串event和一个回调函数。 
  3. once(event,listener):为指定事件注册一个单次监听器,即监听器最多只触发一次,触发后立刻解除该监听器。
  4. removeListener(event,listener):移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。它接受两个参数,第一个是事件名称,第二个是回调函数名称。
  5. removeAllListener([event]):移除所有事件的所有监听器。
  6. setMaxListeners(n):默认情况下, EventEmitters 如果你添加的监听器超过 10 个就会输出警告信息。 setMaxListeners 函数用于改变监听器的默认限制的数量。
  7. listeners(event):返回指定事件的监听器数组。
  8. emit(event,[arg1],[arg2],[...]):按监听器的顺序执行每个监听器,如果事件有则返回true,否则为false。
  9. listenerCount(emitter,event):返回指定事件的监听器数量。

案例:

var events = require('events');
var eventEmitter = new events.EventEmitter();
//监听器1
var listener1 = function listener1(){
    console.log('监听器 listener1 执行。');
}
//监听器2
var listener2 = function listener2(){
    console.log('监听器 listener2 执行');
}
//绑定connection事件,处理函数为listener1
eventEmitter.addListener('connection',listener1);
//绑定connection事件,处理函数为listener2
eventEmitter.on('connection',listener2);
var eventListeners = eventEmitter.listenerCount('connection');
console.log(eventListeners+"个监听器连接事件。");
//处理connection事件
eventEmitter.emit('connection');
//移除监听绑定的listener1 事件
eventEmitter.removeListener('connection',listener1);
console.log("listener1不再受监听");
//触发连接事件
eventEmitter.emit('connection');
eventListeners = eventEmitter.listenerCount('connection');
console.log(eventListeners + "个监听器监听连接事件");
console.log("程序执行完毕。");








//结果:
node main.js
2个监听器连接事件。
监听器 listener1 执行。
监听器 listener2 执行
listener1不再受监听
监听器 listener2 执行
1个监听器监听连接事件
程序执行完毕。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值