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 相关文章推荐
Gird事件机制初级读本
Mar 10 Javascript
JQuery拖拽元素改变大小尺寸实现代码
Dec 10 Javascript
javascript闭包传参和事件的循环绑定示例探讨
Apr 17 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
每天一篇javascript学习小结(RegExp对象)
Nov 17 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
vue-router懒加载速度缓慢问题及解决方法
Nov 25 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
Golang与python线程详解及简单实例
2017/04/27 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
python正则实现提取电话功能
2018/02/24 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python 杀死自身进程的实现方法
2019/07/01 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python的等深分箱实例
2019/11/22 Python
Python selenium的基本使用方法分析
2019/12/21 Python
python程序如何进行保存
2020/07/03 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
泰国在线书店:SE-ED
2020/06/21 全球购物
应用英语专业自荐信
2014/01/26 职场文书
初一体育教学反思
2014/01/29 职场文书
战友聚会主持词
2014/04/02 职场文书
课前三分钟演讲稿
2014/04/24 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
领导新年致辞2016
2015/07/29 职场文书
导游词之日月潭
2019/11/05 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server
Java Redisson多策略注解限流
2022/09/23 Java/Android