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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
jquery easyui的tabs使用时的问题
Mar 23 Javascript
js 通用订单代码
Dec 23 Javascript
从js向Action传中文参数出现乱码问题的解决方法
Dec 29 Javascript
jQuery的end()方法使用详解
Jul 15 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 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
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
javascript写的一个链表实现代码
2009/10/25 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
tab栏切换原理
2017/03/22 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
python爬虫---requests库的用法详解
2020/09/28 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
世界经理人咨询有限公司面试
2014/09/23 面试题
总裁秘书岗位职责
2013/12/04 职场文书
签约仪式主持词
2014/03/19 职场文书
会议邀请函
2015/01/30 职场文书
Python中字符串对象语法分享
2022/02/24 Python
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
Nginx HTTP跳转至HTTPS
2022/05/15 Servers