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 left,right,mid函数
Jun 10 Javascript
js写的评论分页(还不错)
Dec 23 Javascript
javascript 寻找错误方法整理
Jun 15 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
Dec 09 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
Feb 25 Javascript
第一次动手实现bootstrap table分页效果
Sep 22 Javascript
js实现弹窗暗层效果
Jan 16 Javascript
vue-router 权限控制的示例代码
Sep 21 Javascript
JS实现键值对遍历json数组功能示例
May 30 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
Feb 01 Javascript
详解vue 中 scoped 样式作用域的规则
Sep 14 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
星际玩家的三大定律
2020/03/04 星际争霸
十天学会php之第八天
2006/10/09 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python中round函数如何使用
2020/06/19 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
卫校毕业生自我鉴定
2013/10/31 职场文书
超市业务员岗位职责
2013/12/05 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
你真的会用Mysql的explain吗
2022/03/31 MySQL
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android