node.js中的emitter.on方法使用说明


Posted in Javascript onDecember 10, 2014

方法说明:

为指定事件注册一个监听器。

语法:

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;

};
Javascript 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
js URL参数的拼接方法比较
Feb 15 Javascript
jquery多选项卡效果实例代码(附效果图)
Mar 23 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
layui获取选中行数据的实例讲解
Aug 19 Javascript
js实现小星星游戏
Mar 23 Javascript
JavaScript实现优先级队列
Dec 06 Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 #Javascript
node.js中的emitter.emit方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.removeListener方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 #Javascript
node.js中的querystring.unescape方法使用说明
Dec 10 #Javascript
node.js中的querystring.escape方法使用说明
Dec 10 #Javascript
You might like
PHP开发的一些注意点总结
2010/10/12 PHP
php实现图片添加水印功能
2014/02/13 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
django创建自定义模板处理器的实例详解
2017/08/14 Python
详解Python进程间通信之命名管道
2017/08/28 Python
Python  Django 母版和继承解析
2019/08/09 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
浅析Python中字符串的intern机制
2020/10/03 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
新闻人物通讯稿
2014/10/09 职场文书
商铺租房协议书范本
2014/12/04 职场文书
三国演义读书笔记
2015/06/25 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
微信小程序基础教程之echart的使用
2021/06/01 Javascript
Vue如何清空对象
2022/03/03 Vue.js
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS