node.js中的events.emitter.removeListener方法使用说明


Posted in Javascript onDecember 10, 2014

方法说明:

移除指定事件的某个监听器。

语法:

emitter.removeListener(event, listener)

接收参数:

event            (string)             事件类型

listener         (function)        已注册过的监听器

例子:

var callback = function(stream) {

  console.log('someone connected!');

};

server.on('connection', callback);

// ...

server.removeListener('connection', callback);

源码:

// emits a 'removeListener' event iff the listener was removed

EventEmitter.prototype.removeListener = function(type, listener) {

  var list, position, length, i;

  if (!util.isFunction(listener))

    throw TypeError('listener must be a function');

  if (!this._events || !this._events[type])

    return this;

  list = this._events[type];

  length = list.length;

  position = -1;

  if (list === listener ||

      (util.isFunction(list.listener) && list.listener === listener)) {

    delete this._events[type];

    if (this._events.removeListener)

      this.emit('removeListener', type, listener);

  } else if (util.isObject(list)) {

    for (i = length; i-- > 0;) {

      if (list[i] === listener ||

          (list[i].listener && list[i].listener === listener)) {

        position = i;

        break;

      }

    }

    if (position < 0)

      return this;

    if (list.length === 1) {

      list.length = 0;

      delete this._events[type];

    } else {

      list.splice(position, 1);

    }

    if (this._events.removeListener)

      this.emit('removeListener', type, listener);

  }

  return this;

};
Javascript 相关文章推荐
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
Oct 14 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 Javascript
详解用node搭建简单的静态资源管理器
Aug 09 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
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
node.js中的querystring.stringify方法使用说明
Dec 10 #Javascript
node.js中的querystring.parse方法使用说明
Dec 10 #Javascript
node.js中的url.resolve方法使用说明
Dec 10 #Javascript
You might like
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
sina的lightbox效果。
2007/01/09 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
JSON相关知识汇总
2015/07/03 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
外科实习自我鉴定
2013/10/06 职场文书
业务员的岗位职责
2014/03/15 职场文书
道歉的话怎么说
2015/05/12 职场文书
党纪处分决定书
2015/06/24 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python