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下4个跨浏览器必备的函数
Mar 07 Javascript
不同浏览器的怪癖小结
Jul 11 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
js切换光标示例代码
Oct 10 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
JavaScript定时器和优化的取消定时器方法
Jul 03 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
详解elementUI中input框无法输入的问题
Apr 27 Javascript
详解vue中v-model和v-bind绑定数据的异同
Aug 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
node.js中的querystring.stringify方法使用说明
Dec 10 #Javascript
node.js中的querystring.parse方法使用说明
Dec 10 #Javascript
node.js中的url.resolve方法使用说明
Dec 10 #Javascript
You might like
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
php代码架构的八点注意事项
2016/01/25 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
CSS常用网站布局实例
2008/04/03 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python 不关闭控制台的实现方法
2011/10/23 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python性能提升之延迟初始化
2016/12/04 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python 通配符删除文件的实例
2018/04/24 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
python实现字符串和数字拼接
2020/03/02 Python
python实现手势识别的示例(入门)
2020/04/15 Python
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
公立医院改革实施方案
2014/03/14 职场文书
共产党员公开承诺书
2014/03/25 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
电影雨中的树观后感
2015/06/15 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript