Socket
Socket
Sign inDemoInstall

eventemitter3

Package Overview
Dependencies
8
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    eventemitter3

EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface. This the source of the same EventEmitter that is used in Primus.


Version published
Weekly downloads
31M
decreased by-2.21%
Maintainers
1
Created
Weekly downloads
 

Package description

What is eventemitter3?

The eventemitter3 package is a high-performance event emitter library that provides an interface for emitting and listening to events. It is a drop-in replacement for existing EventEmitter implementations with a focus on performance.

What are eventemitter3's main functionalities?

Emitting events

This feature allows you to emit events with a specified name and pass arguments to the event listeners.

const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
emitter.on('greet', function(message) {
  console.log(message);
});
emitter.emit('greet', 'Hello World!');

Listening to events

This feature allows you to add a listener for a specific type of event. The listener will be invoked when an event with that name is emitted.

const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
emitter.on('greet', function(message) {
  console.log(message);
});

Removing event listeners

This feature allows you to remove a specific listener from an event so that it no longer gets called when the event is emitted.

const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
function onGreet(message) {
  console.log(message);
}
emitter.on('greet', onGreet);
emitter.removeListener('greet', onGreet);

Once listeners

This feature allows you to add a one-time listener for an event. The listener will be invoked only the first time the event is emitted, after which it is removed.

const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
emitter.once('greet', function(message) {
  console.log('This will only be logged once:', message);
});
emitter.emit('greet', 'Hello World!');
emitter.emit('greet', 'Hello again!');

Other packages similar to eventemitter3

Readme

Source

EventEmitter3

EventEmitter3 is a faster alternative to EventEmitter2 and the built-in EventEmitter that ships within Node.js. It removes some features that you might not need:

  • Domain support.
  • Thrown errors when there are no error listeners specified.
  • That a newListener event is emitted when an event is emitted.
  • No silly setMaxListeners.
  • No silly listenerCount function.. Just do EventEmitter.listeners(event).length

And adds some features you want:

  • Emit events with a custom context without binding: EE.on(event, fn, context) which also works with once EE.once(event, fn, context)

It's a drop in replacement of your existing EventEmitters, but just faster. Free performance, who wouldn't want that?

The source of the EventEmitter is compatible for browser usage, no fancy pancy Array.isArray stuff is used, it's just plain ol JavaScript that should even work IE5 if you want to. This module currently serves its use in Primus's client file.

Installation

$ npm install --save eventemitter3

or as a component

$ component install eventemitter3

then

var EventEmitter = require('eventemitter3');

// or

var EventEmitter = require('eventemitter3').EventEmitter;

For API methods see the official Node.js documentation:

http://nodejs.org/api/events.html

Keywords

FAQs

Last updated on 21 Aug 2014

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc