backbone-esnext-events
Version:
Separates 'events' support from Backbone in addition to adding TyphonJS extensions.
35 lines (24 loc) • 2.94 kB
Markdown

[](https://www.npmjs.com/package/backbone-esnext-events)
[](http://docs.typhonjs.io/typhonjs-backbone-esnext/backbone-esnext-events/)
[](https://en.wikipedia.org/wiki/Indent_style#Allman_style)
[](https://github.com/typhonjs-backbone/typhonjs-core-backbone-events/blob/master/LICENSE)
[](https://gitter.im/typhonjs/TyphonJS)
[](https://travis-ci.org/typhonjs-backbone-esnext/backbone-esnext-events)
[](https://codecov.io/github/typhonjs-backbone-esnext/backbone-esnext-events)
[](https://david-dm.org/typhonjs-backbone-esnext/backbone-esnext-events)
Separates 'Events' support from [backbone-esnext](https://github.com/typhonjs-backbone-esnext) in addition to adding TyphonJS extensions found in [TyphonEvents](https://github.com/typhonjs-backbone-esnext/backbone-esnext-events/blob/master/src/TyphonEvents.js). The events dispatch functionality is useful well outside the context of Backbone and is utilized across several TyphonJS repos. It should be noted that there are no dependencies with backbone-esnext-events and it can be used independently in any project without pulling in Underscore like Backbone does.
The default trigger mechanism work justs as it does with Backbone:
- `trigger` - Invokes all targets matched with a one way message.
TyphonEvents adds new functionality for triggering events. The following are new trigger mechanisms:
- `triggerDefer` - Defers invoking `trigger` to the next clock tick.
- `triggerSync` - Synchronously invokes all targets matched and passes back a single value or an array of results to the callee.
- `triggerAsync` - Asynchronously invokes all targets matched and passes back a promise resolved with a single value or an array of results through `Promise.all` which returns a single promise to the callee.
To import TyphonEvents and create a new instance:
```
import Events from 'backbone-esnext-events';
const eventbus = new Events();
// or extend a class to add event functionality
export default class MyThing extends Events {}
```
Please see [backbone-esnext-eventbus](https://www.npmjs.com/package/backbone-esnext-eventbus) for a module which provides a default main eventbus instance for ease of use across modules.