backbone-events-promises

0.2.0 • Public • Published

backbone-events-promises

BuildStatus

This plugin to backbone.js adds promise functionality to Backbone.Events, as well as any object that extends Backbone.Events - which is pretty much all of them.

Installation

npm i -D backbone-events-promises

Dependencies

Promises are implemented by using $.Deferred and $.when. This can be provided via jQuery or Zepto*. Potentially other sources such as when.js could be used if a shim was provided to apply it's functions to $.Deferred and $.when.

Additionally, it also depends on Underscore's _.extend(). Underscore is already a hard dependency of Backbone, so no harm done there.

*requires including Zepto's deferred plugin.

Usage

API:

Backbone.Events.promises(enable, [context], [options]);

Enables the backbone-promises functionality for events.

To enable on all Backbone objects, use the following code before creating any Backbone objects in your application.

var objs = ['Model', 'Collection', 'Router', 'View', 'History'];
Backbone.Events.promises(true);
for (var i = 0, l = objs.length; i < l; i++) {
    Backbone.Events.promises(true, Backbone[objs[i]].prototype);
}

Backbone.Events.trigger now returns a promise.

var promise = Backbone.Events.trigger( "event name" [, arg1] [, arg2] );

Each callback assigned to the event can return a promise. If a promise is returned, it will be added to the list of promises to resolve.

$.when API reference

Package Sidebar

Install

npm i backbone-events-promises

Weekly Downloads

6

Version

0.2.0

License

MIT

Last publish

Collaborators

  • defiantbidet
  • rmarscher