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 相关文章推荐
My Desktop :) 桌面式代码
Dec 29 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
Bootstrap table两种分页示例
Dec 23 Javascript
ajax实现动态下拉框示例
Jan 10 Javascript
JS实现身份证输入框的输入效果
Aug 21 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
微信小程序绘制图片发送朋友圈
Jul 25 Javascript
JavaScript数组及常见操作方法小结
Nov 13 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 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设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
php操作redis缓存方法分享
2015/06/03 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
event.srcElement+表格应用
2006/08/29 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
Python中的包和模块实例
2014/11/22 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
使用python接入微信聊天机器人
2020/03/31 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
linux面试题参考答案(4)
2013/01/28 面试题
个人求职简历中英文自我评价
2013/12/16 职场文书
迟到检讨书大全
2014/01/25 职场文书
2014年教育工作总结
2014/11/26 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python