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 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
jquery的live使用注意事项
Feb 18 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
JavaScript动态添加数据到表单并提交的几种方式
Jun 26 Javascript
jquery实现吸顶导航效果
Jan 08 jQuery
vue-i18n实现中英文切换的方法
Jul 06 Javascript
如何编写一个 Webpack Loader的实现
Oct 18 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
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
javascript 正则表达式相关应介绍
2012/11/27 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python属于解释型语言么
2020/06/15 Python
Python如何操作docker redis过程解析
2020/08/10 Python
python 实现批量图片识别并翻译
2020/11/02 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
单位人事专员介绍信
2014/01/11 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
流动人口婚育证明
2014/10/19 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
太行山上观后感
2015/06/05 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python