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

 更新时间:2014年12月10日 09:46:31   投稿:junjie  
这篇文章主要介绍了node.js中的events.emitter.removeListener方法使用说明,本文介绍了events.emitter.removeListener的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下

方法说明:

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

语法:

复制代码 代码如下:

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;
};

相关文章

  • 在Node.js中判断路径是否绝对的解决方法

    在Node.js中判断路径是否绝对的解决方法

    在不同的操作系统中,路径的表示方式有很大的差异,当编写跨平台的 Node.js 应用时,正确判断路径的绝对性变得至关重要,本文提供了path-is-absolute模块的详细使用指南,它是一个兼容 Node.js 早期版本且适用于所有操作系统的解决方案,需要的朋友可以参考下
    2024-04-04
  • node.js做一个简单的爬虫案例教程

    node.js做一个简单的爬虫案例教程

    这篇文章主要介绍了node.js做一个简单的爬虫案例教程,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Nodejs Express 通过log4js写日志到Logstash(ELK)

    Nodejs Express 通过log4js写日志到Logstash(ELK)

    这篇文章主要介绍了Nodejs Express 通过log4js写日志到Logstash(ELK),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 详解Nodejs get获取远程服务器接口数据

    详解Nodejs get获取远程服务器接口数据

    这篇文章主要介绍了Nodejs get获取远程服务器接口数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 用node和express连接mysql实现登录注册的实现代码

    用node和express连接mysql实现登录注册的实现代码

    本篇文章主要介绍了用node和express连接mysql实现登录注册的实现代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • Windows下Node.js安装及环境配置方法

    Windows下Node.js安装及环境配置方法

    这篇文章主要为大家介绍一下Node.js安装及环境配置方法,这也是脚本之家小编发现的比较详细的教程了,从安装到配置都很详细,想学习Node.js的朋友可以参考一下
    2017-09-09
  • npm报版本与node.js不匹配问题及解决

    npm报版本与node.js不匹配问题及解决

    这篇文章主要介绍了npm报版本与node.js不匹配问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • node使用async_hooks模块进行请求追踪

    node使用async_hooks模块进行请求追踪

    这篇文章主要介绍了node使用async_hooks模块进行请求追踪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • nodejs中向HTTP响应传送进程的输出

    nodejs中向HTTP响应传送进程的输出

    这篇文章主要介绍了nodejs中向HTTP响应传送进程的输出 ,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • node.js中debug模块的简单介绍与使用

    node.js中debug模块的简单介绍与使用

    这篇文章主要介绍了node.js中debug模块的相关资料,文中通过图文介绍的非常详细,相信会对大家具有一定的参考学习价值,需要的朋友们下面来跟着小编来一起看看吧。
    2017-04-04

最新评论