Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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');
```