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

https://github.com/potch/promise.js

No longer under active development!
https://github.com/potch/promise.js

Last synced: about 1 year ago
JSON representation

No longer under active development!

Awesome Lists containing this project

README

          

# promise.js is no longer under active development!

[jarchibald/ES6-Promises](https://github.com/jakearchibald/ES6-Promises) does everything this library was set out to do.

# promise.js

[Promises/A+ 1.0 compliant](http://promisesaplus.com/)

A Minimal, fully Promises/A+ compliant library.

Promises/A+ spec here: http://promisesaplus.com/

[![Build Status](https://travis-ci.org/potch/promise.js.png)](https://travis-ci.org/potch/promise.js)

# Usage

* `promise()` - Creates a promise. Can pass an optional `obj` argument. 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 a `then` method?)
* `promise.avow(fn)` - wrap a function in a promise. Use like so:

```js
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 object
* `fulfill(value)` - fulfills the promise with the passed value.
* `reject(reason)` - rejects the promise with the passed reason.

For all behaviors, see the [spec](http://promisesaplus.com/ "Promises/A+ Specification").