node.js模块之events

Email:longsu2010 at yeah dot net 

events是node的最核心模块,没有之一。


先来个例子:

var events = require("events");  
var emitter = new events.EventEmitter();  
emitter.on("dataReady", function(data){ // 绑定事件回调函数  
	console.log(data);  
});  
emitter.emit("dataReady", "this is data"); //触发事件  

node中许多对象都会发布一个事件,例如每当有链接建立net.Server发布一个事件、当文件打开时fs.readStream发布一个事件。所有发布事件的对象都是events.EventEmitter实例。一般事件名字建议使用驼峰标识。

当EventEmitter类实例遇到一个error的时候,典型的行为是发布一个error事件。在node中error事件比较特殊,如果没有为EventEmitter实例绑定一个error事件的回调函数,当遇到错误的时候默认的行为是打印错误堆栈信息后退出。

当给EventEmitter实例绑定一个事件回调函数或者解除绑定一个回调函数时,EventEmitter实例会分别发布newListener事件和removeListener事件, 并传递所绑定的事件名字和回调函数作为回调函数的参数。
 
 EventEmitter可用方法:
 1、addListener和on:绑定事件回调函数。
 2、once:绑定事件回调函数,执行一次后自动解除绑定。
 3、removeListener:解除绑定指定事件的指定回调函数。
 4、removeAllListeners:解除参数指定的事件的所有回调函数,若不指定参数则解除所有事件的所有回调函数。
 5、setMaxListeners:默认情况下,指定事件绑定的回调函数超过10个node将会打印一条警告信息。这是帮助查找内存泄漏的一个手段,当然不是所有的事件都应该被限制为10,可以通过这个函数来修改这一限制,如果设置为0则为无限制。
 6、listeners:返回指定事件的回调函数数组。
 7、emit:发布指定事件,第一参数为事件名字,其余参数为参数。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值