您的位置:首页 > Web前端 > Node.js

node.js模块之events

2013-04-01 16:24 465 查看
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:发布指定事件,第一参数为事件名字,其余参数为参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息