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 相关文章推荐
checkbox设置复选框的只读效果不让用户勾选
Aug 12 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
2种jQuery 实现刮刮卡效果
Feb 01 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
vue使用Axios做ajax请求详解
Jun 07 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
Vue组件实现触底判断
Jun 26 Javascript
原生JS实现九宫格抽奖
Sep 13 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 Javascript
Javascript中的奇葩知识,你知道吗?
Jan 25 Javascript
VUE递归树形实现多级列表
Jul 15 Vue.js
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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
php编程每天必学之验证码
2016/03/03 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
学习python (2)
2006/10/31 Python
python赋值操作方法分享
2013/03/23 Python
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python实现登陆文件验证方法
2018/10/06 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
三关爱志愿服务活动方案
2014/08/17 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
夏洛特的网观后感
2015/06/15 职场文书
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby