jarchibald/ES6-Promises does everything this library was set out to do.
promise.js
A Minimal, fully Promises/A+ compliant library.
Promises/A+ spec here: http://promisesaplus.com/
Usage
promise()- Creates a promise. Can pass an optionalobjargument. If passed, promise methods are attached to passed object.promise.isPromise(obj)- Uses duck-typing to check whether the given object is a 'promise' (does it have athenmethod?)promise.avow(fn)- wrap a function in a promise. Use like so:
var add = promise.avow(function (fulfill, reject, a, b) { if (a <= 2 && b <= 2) { fulfill(a + b); } else { reject('Math is hard.'); } }); add(1, 1).then(console.log);
Promise Methods
then(onFulfill, onReject)- bind fulfillment/rejection handlers to the promise. Returns a promise objectfulfill(value)- fulfills the promise with the passed value.reject(reason)- rejects the promise with the passed reason.
For all behaviors, see the spec.