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 相关文章推荐
关于COOKIE个数与大小的问题
Jan 17 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
基于 Node.js 实现前后端分离
Apr 23 Javascript
jQuery EasyUI提交表单验证
Jul 19 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
JS正则获取HTML元素的方法
Mar 31 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
微信小程序scroll-view组件实现滚动动画
Jan 31 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
Apr 17 Javascript
JavaScript实现放大镜效果代码示例
Apr 29 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
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
jquery 3D球状导航的文章分类
2010/07/06 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
JavaScript手机振动API
2016/06/11 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
详解numpy的argmax的具体使用
2019/05/27 Python
python实现在线翻译
2020/06/18 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
Python实现自动整理文件的脚本
2020/12/17 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
高考备战决心书
2014/03/11 职场文书
企业出纳岗位职责
2014/03/12 职场文书
公证书样本
2014/04/10 职场文书
学生评语大全
2014/04/18 职场文书
邓小平理论心得体会
2014/09/09 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
导游词之南京中山陵
2019/11/27 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python