Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xnimorz/e2
e2 (Emit-Event) is a custom event emitter.
https://github.com/xnimorz/e2
Last synced: about 1 month ago
JSON representation
e2 (Emit-Event) is a custom event emitter.
- Host: GitHub
- URL: https://github.com/xnimorz/e2
- Owner: xnimorz
- Created: 2015-09-22T20:39:46.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-10-14T14:42:16.000Z (about 7 years ago)
- Last Synced: 2024-10-14T19:41:21.182Z (3 months ago)
- Language: JavaScript
- Size: 22.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
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:
```
```
### 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:
1)
```
function Constructor() {}
Constructor.prototype = new E2;var instance = new Constructor;
```2)
```
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');
```