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 相关文章推荐
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
一个JQuery操作Table的代码分享
Mar 30 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
May 21 Javascript
jquery获取子节点和父节点的示例代码
Sep 10 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
两个select多选模式的选项相互移动(示例代码)
Jan 11 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 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
PHP5函数小全(分享)
2013/06/06 PHP
小谈php正则提取图片地址
2014/03/27 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
简单的js表单验证函数
2013/10/28 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
python比较两个列表是否相等的方法
2015/07/28 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
Python操作qml对象过程详解
2019/09/26 Python
荷兰超市:DEEN
2018/03/14 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
十八大闭幕感言
2014/01/22 职场文书
网络营销策划方案
2014/06/04 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL