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

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

方法说明:

为指定事件注册一个监听器。

语法:

复制代码 代码如下:

emitter.on(event, listener)
emitter.addListener(event, listener)

接收参数:

event            (string)             事件类型
listener         (function)         触发事件时的回调函数

例子:

复制代码 代码如下:

server.on('connection', function (stream) {
  console.log('someone connected!');
});

源码:

复制代码 代码如下:

EventEmitter.prototype.addListener = function(type, listener) {
  var m;
  if (!util.isFunction(listener))
    throw TypeError('listener must be a function');
  if (!this._events)
    this._events = {};
  // To avoid recursion in the case that type === "newListener"! Before
  // adding it to the listeners, first emit "newListener".
  if (this._events.newListener)
    this.emit('newListener', type,
              util.isFunction(listener.listener) ?
              listener.listener : listener);
  if (!this._events[type])
    // Optimize the case of one listener. Don't need the extra array object.
    this._events[type] = listener;
  else if (util.isObject(this._events[type]))
    // If we've already got an array, just append.
    this._events[type].push(listener);
  else
    // Adding the second element, need to change to array.
    this._events[type] = [this._events[type], listener];
  // Check for listener leak
  if (util.isObject(this._events[type]) && !this._events[type].warned) {
    var m;
    if (!util.isUndefined(this._maxListeners)) {
      m = this._maxListeners;
    } else {
      m = EventEmitter.defaultMaxListeners;
    }
    if (m && m > 0 && this._events[type].length > m) {
      this._events[type].warned = true;
      console.error('(node) warning: possible EventEmitter memory ' +
                    'leak detected. %d listeners added. ' +
                    'Use emitter.setMaxListeners() to increase limit.',
                    this._events[type].length);
      console.trace();
    }
  }
  return this;
};

相关文章

  • node+express+ejs制作简单页面上手指南

    node+express+ejs制作简单页面上手指南

    本文记录了使用node+express+ejs制作简单页面的全过程,话说express+ejs真的是太难了,有种蛋蛋的忧伤~
    2014-11-11
  • nodejs爬虫初试superagent和cheerio

    nodejs爬虫初试superagent和cheerio

    这篇文章主要介绍了nodejs爬虫初试superagent和cheerio的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-03-03
  • node 利用进程通信实现Cluster共享内存

    node 利用进程通信实现Cluster共享内存

    本篇文章主要介绍了node 利用进程通信实现Cluster共享内存,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 利用adb shell和node.js实现抖音抢红包功能(推荐)

    利用adb shell和node.js实现抖音抢红包功能(推荐)

    这篇文章主要介绍了利用adb shell和node.js实现抖音抢红包功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 详解Express笔记之动态渲染HTML(新手入坑)

    详解Express笔记之动态渲染HTML(新手入坑)

    这篇文章主要介绍了详解Express笔记之动态渲染HTML(新手入坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Node.js 中的 module.exports 与 exports区别介绍

    Node.js 中的 module.exports 与 exports区别介绍

    这篇文章主要介绍了Node.js中的module.exports与exports区别介绍,每个模块中都有module对象,存放了当前模块相关的信息,更多相关内容需要的朋友可以参考一下
    2022-09-09
  • nodejs制作爬虫实现批量下载图片

    nodejs制作爬虫实现批量下载图片

    本文给大家分享的是作者使用nodejs制作爬虫来爬去图片并批量下载的全过程,非常的细致,有需要的小伙伴可以参考下
    2017-05-05
  • Node.js Sequelize如何实现数据库的读写分离

    Node.js Sequelize如何实现数据库的读写分离

    Sequelize是一个易于使用,支持多SQL方言(dialect)的对象-关系映射框架(ORM),这个库完全采用JavaScript开发并且能够用在Node.JS环境中。它当前支持MySQL, MariaDB, SQLite 和 PostgreSQL 数据库。在Node.js中,使用 Sequelize操作数据库时,同样支持读写分离。
    2016-10-10
  • 详解Node.js异步处理的各种写法

    详解Node.js异步处理的各种写法

    这篇文章主要介绍了Node.js异步处理的各种写法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • nodejs模块学习之connect解析

    nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论