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 相关文章推荐
JavaScript 滚轮事件使用说明
Mar 07 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
May 25 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
详解ES6通过WeakMap解决内存泄漏问题
Mar 09 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
JavaScript静态作用域和动态作用域实例详解
Jun 17 Javascript
layui输入框只允许输入中文且判断长度的例子
Sep 18 Javascript
vue中的循环对象属性和属性值用法
Sep 04 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
node.js中的querystring.stringify方法使用说明
Dec 10 #Javascript
node.js中的querystring.parse方法使用说明
Dec 10 #Javascript
node.js中的url.resolve方法使用说明
Dec 10 #Javascript
You might like
Snoopy类使用小例子
2008/04/15 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
js类 from qq
2006/11/13 Javascript
jQuery 性能优化指南(3)
2009/05/21 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
javascript几个易错点记录
2014/11/26 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
微信小程序实现拖拽功能
2019/09/26 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python进程类subprocess的一些操作方法例子
2014/11/22 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
对python 自定义协议的方法详解
2019/02/13 Python
pandas数据集的端到端处理
2019/02/18 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
使用Python函数进行模块化的实现
2019/11/15 Python
化学系大学生自荐信范文
2014/03/01 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python