node.js中的事件处理机制及事件环机制

EventEmitter类

在node.js的用于实现各种事件处理的event模块中,定义了一个EventEmitter类。所有可能触发事件的对象都是一个继承了EventEmitter类的子类的实例对象。EventEmitter定义了许多的方法,所有与对象的事件处理函数的绑定及解除均依靠这些方法的调用来执行。

EventEmitter类的各种方法

addListener(event,listener)对指定事件绑定事件处理的函数

on(event,listener)对指定事件绑定事件的函数(addlistener的别名)

once(event,listener)对指定事件指定只执行一次的事件处理函数

removeListener(event,listener)对指定事件解除事件处理函数

removeAllListeners([ event])对指定事件解除所有事件处理函数

setMaxListeners(n)指定事件处理函数的最大数量

listeners(event)获取指定事件的所有处理函数

emit(event,[arg1],[arg2])手工触发指定事件

可以对统一事件绑定多个处理函数,默认情况下,针对统一指定事件,最多可以绑定10个事件处理函数。可以通过setMaxListeners方法修改最多可以绑定的事件处理函数数量。

emitter.satMaxlisteners(n);

EventEmitter自身拥有一个listenerCount方法,可以用来获取某个指定事件的事件处理函数的数量。

EventEmitter.listenerCount(emitter,event);第一个参数用于指定需要获取哪个对象的事件处理函数的数量,第二个参数用于指定需要获取哪个事件的事件处理函数的数量。

在events模块中,为EventEmitter类本身定义了两个事件:newListener事件与removeListener事件。

任何时候,当对继承了EventEmiter类的子类实例对象绑定事件处理函数时,都将触发EventEmitter类的newListener事件,代码如下

emitter.on('newListener',function(e,f){

    //事件处理函数

})在事件处理函数中,可使用两个参数,其中第一个参数为被绑定的事件名,第二个参数为绑定的事件处理函数。

 

事件环机制

 

转载于:https://my.oschina.net/wsh2016/blog/777416

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值