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 相关文章推荐
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
JS集成fckeditor及判断内容是否为空的方法
May 27 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
浅谈JS的基础类型与引用类型
Sep 13 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
jquery仿京东商品放大浏览页面
Jun 06 jQuery
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 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
php中strtotime函数用法详解
2014/11/15 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
JavaScript中的prototype使用说明
2010/04/13 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python进阶教程之循环对象
2014/08/30 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
python连接mongodb密码认证实例
2018/10/16 Python
Django中间件基础用法详解
2019/07/18 Python
电子商务专业学生的学习自我评价
2013/10/27 职场文书
支部鉴定材料
2014/06/02 职场文书
社团活动总结格式
2014/08/29 职场文书
领导干部保密承诺书
2014/08/30 职场文书
公司收款委托书范本
2014/09/20 职场文书
运动会主持词大全
2015/07/02 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android