node.js中的emitter.on方法使用说明
作者:bea
方法说明: 为指定事件注册一个监听器。 语法: 代码如下: emitter.on(event, listener) emitter.addListener(event, listener) 接收参数: event (string) 事件类型 listener (function) 触发事件时的回调函数 例子: 代码如下: server.on('connection', function (stream) { console.log('someone co
方法说明:
为指定事件注册一个监听器。
语法:
代码如下:
emitter.on(event, listener)
emitter.addListener(event, listener)
接收参数:
event (string) 事件类型 listener (function) 触发事件时的回调函数
例子:
代码如下:
server.on('connection', function (stream) {
console.log('someone connected!');
});
源码:
代码如下:
EventEmitter.prototype.addListener = function(type, listener) {
var m;
if (!util.isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events)
this._events = {};
// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if (this._events.newListener)
this.emit('newListener', type,
util.isFunction(listener.listener) ?
listener.listener : listener);
if (!this._events[type])
// Optimize the case of one listener. Don't need the extra array object.
this._events[type] = listener;
else if (util.isObject(this._events[type]))
// If we've already got an array, just append.
this._events[type].push(listener);
else
// Adding the second element, need to change to array.
this._events[type] = [this._events[type], listener];
// Check for listener leak
if (util.isObject(this._events[type]) && !this._events[type].warned) {
var m;
if (!util.isUndefined(this._maxListeners)) {
m = this._maxListeners;
} else {
m = EventEmitter.defaultMaxListeners;
}
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;
console.error('(node) warning: possible EventEmitter memory ' +
'leak detected. %d listeners added. ' +
'Use emitter.setMaxListeners() to increase limit.',
this._events[type].length);
console.trace();
}
}
return this;
};
有用 | 无用
为指定事件注册一个监听器。
语法:
代码如下:
emitter.on(event, listener)
emitter.addListener(event, listener)
接收参数:
event (string) 事件类型 listener (function) 触发事件时的回调函数
例子:
代码如下:
server.on('connection', function (stream) {
console.log('someone connected!');
});
源码:
代码如下:
EventEmitter.prototype.addListener = function(type, listener) {
var m;
if (!util.isFunction(listener))
throw TypeError('listener must be a function');
if (!this._events)
this._events = {};
// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if (this._events.newListener)
this.emit('newListener', type,
util.isFunction(listener.listener) ?
listener.listener : listener);
if (!this._events[type])
// Optimize the case of one listener. Don't need the extra array object.
this._events[type] = listener;
else if (util.isObject(this._events[type]))
// If we've already got an array, just append.
this._events[type].push(listener);
else
// Adding the second element, need to change to array.
this._events[type] = [this._events[type], listener];
// Check for listener leak
if (util.isObject(this._events[type]) && !this._events[type].warned) {
var m;
if (!util.isUndefined(this._maxListeners)) {
m = this._maxListeners;
} else {
m = EventEmitter.defaultMaxListeners;
}
if (m && m > 0 && this._events[type].length > m) {
this._events[type].warned = true;
console.error('(node) warning: possible EventEmitter memory ' +
'leak detected. %d listeners added. ' +
'Use emitter.setMaxListeners() to increase limit.',
this._events[type].length);
console.trace();
}
}
return this;
};
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- js 左右悬浮对联广告代码示例
- 原生JavaScript+LESS实现瀑布流
- jquery禁止回车触发表单提交
- 完美兼容各大浏览器的jQuery插件实现图片切换特效
- windows8.1+iis8.5下安装node.js开发环境
- jQuery 和 CSS 的文本特效插件集锦
- js使用递归解析xml
- 做web开发 先学JavaScript
- 兼容主流浏览器的JS复制内容到剪贴板
- Javascript模拟加速运动与减速运动代码分享
- javascript中HTMLDOM操作详解
- javascript实现修改微信分享的标题内容等
- javascript表单验证和Window详解
- 使用百度地图api实现根据地址查询经纬度
- javascript实现倒计时N秒后网页自动跳转代码
- node.js中的buffer.Buffer.byteLength方法使用说明
- node.js中的buffer.slice方法使用说明
- node.js中的buffer.write方法使用说明
- node.js中的http.request.end方法使用说明