对emitter.on方法在Node.js的使用说明
方法显示:为指定事件注册侦听器。
Grammar:
复制代码代码如下所示:
Emitter.on(事件监听器)
Emitter.addListener(事件监听器)
接收参数:
事件(字符串)事件类型
侦听器(函数)触发事件时的回调函数。
实例uff1a
复制代码代码如下所示:
server.on(连接,功能(流){
console.log(有人接!;
});
源代码 uff1a
复制代码代码如下所示:
eventemitter.prototype.addlistener =函数(类型、听众){
var m;
如果(!util.isfunction(听众))
把TypeError('listener必须是一个函数);
如果(!这_events)。
这_events = { };
为了避免递归的案例/类型=newlistener 之前!
它 / /添加侦听器,第一次发出newlistener 。
如果(这。_events。newlistener)
This.emit('newlistener型,
util.isfunction(听众。听众)
Listener.listener:听众);
如果(!这_events {型})。
优化一个监听器的情况。不需要额外的数组对象。
这_events { } =听众类型;
如果(util.isobject(这个。_events {型}))
如果我们已经没有一个数组,只需追加。
这个_events {类型}推(听众);
其他的
第二个添加元素需要更改为数组。
这个_events { } = {这类型。_events {型},听者};
侦听器泄漏检查
如果(util.isobject(这个。_events {型})!这个_events {类型} {警告)。
var m;
如果(!util.isundefined(这个。_maxlisteners)){
这_maxlisteners M =;
{人}
M = eventemitter.defaultmaxlisteners;
}
如果(m>0。_events {类型}。长度>m){
这个_events {类型}。警告=真;
Console.error('(节点)警告:可能的EventEmitter记忆+
检测到泄漏。添加了%d个侦听器。+
使用emitter.setmaxlisteners()增加限制。,
这个_events {类型}长度);
Console.trace();
}
}
返回此;
};