e2
v2.0.0
Published
e2 (Emit-Event) is a custom event emitter. Support Node.js and browsers
Downloads
50
Maintainers
Readme
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');