e2 (Emit-Event) is a custom event emitter.
JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
README.md
bower.json
e2.js
e2.min.js
gulpfile.js
package-lock.json
package.json

README.md

E2

E2 is a custom event emitter for Node.js and the browser with async events supporting.

E2 supporting CommonJS and AMD modules.

Installing

Node.js

Using npm:

npm install e2

Browsers

Using bower:

bower install e2

Using script tag:

<script type="text/javascript" src="e2.min.js"></script>

Simple usage

As standalone object

var E2 = require('e2');

var e2 = new E2;

e2.on('my-event-name', function myEventHandler() {});

e2.emit('my-event-name', {someEventData: someEventValue});

Using inheritance

Constructors:

function SomeClass() {

}

SomeClass.prototype = new E2;

var instance = new SomeClass;

instance.on('event', eventHandler).emit('event');

Object.create:

var instance = Object.create(new E2);

instance.on('event', eventHandler).emit('event');

Description

Create E2 instance:

var e2 = new E2();

You can inherit custom Objects from e2:

function Constructor() {}
Constructor.prototype = new E2;

var instance = new Constructor;
var instance = Object.create(new E2);

Listening to events

// Basic
e2.on('event', handler);

// Assign handler to several events
e2.on(['my-event', 'second-event'], handler)

// Once
e2.once('event', handler);
// Or
e2.on('event', handler, {once: true});

// Using object
e2.on({
    event: eventHandler,
    secondEvent: secondEventHandler
});

Emitting

e2.emit('event-name');

// With data
e2.emit('event-name', {foo: 'bar'});

// Emit several events
e2.emit(['event-name', 'second-event']);
e2.emit(['event-name', 'second-event'], {foo: 'bar'});

// Emit event async
e2.emitAsync('event-name');
e2.emitAsync('event-name', {foo: 'bar'});
e2.emitAsync(['event-name', 'second-event']);
e2.emitAsync(['event-name', 'second-event'], {foo: 'bar'});

Event data

Events are objects having the following keys:

  • data: the data attached to the event.
  • type: the event type.
  • target: the event emitter.

For example:

e2.on('event', function(e) {
    console.log(e.type) // -> 'event'
    console.log(e.target) // -> e2
    console.log(e.data) // -> {foo: 'bar'}
}.emit('event', {foo: 'bar'});

Removing event handler

// Remove all handlers attached to the given event
e2.off('event');

// Remove handler from event directly
e2.off('event', handler);

// Remove all handlers from several events
e2.off(['event', 'second-event']);

// Remove handler from several events
e2.off(['event', 'second-event'], eventHandler);

Get event listeners

// Return every matching handlers for a given event name
e2.listeners('event');