wee-promise

1.1.0 • Public • Published
Promises/A+ logo

WeePromise

An ultra light (<1k minified / gzipped) Promises / A+ implementation.

travis-ci

Installation

npm i wee-promise --save

Usage

WeePromise supports both deferred and resolver patterns:

function asDeferred() {
    const deferred = new WeePromise();
    doSomethingAsync(deferred.resolve);
    return deferred;
}
 
function asResolver() {
    return new WeePromise((resolve) => {
        doSomethingAsync(resolve);
    });
}

as well as ES6-style all and race methods:

const arr = getCollectionOfPromises();
 
WeePromise.all(arr).then((result) => {
    // result is an array of all of the promise values in arr.
});
 
WeePromise.race(arr).then((result) => {
    // result is the value of the first resolved promise in arr.
});

and can be extended to create objects that behave as A+ compliant promises:

class Gnarly extends WeePromise {
    // ...
}

If you want to change WeePromise's async provider, just override WeePromise.async:

WeePromise.async = (cb) => {
    const img = new Image();
    img.onload = img.onerror = cb;
    img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
};

Build & Test

npm i && npm run build

Readme

Keywords

Package Sidebar

Install

npm i wee-promise

Weekly Downloads

0

Version

1.1.0

License

MIT

Last publish

Collaborators

  • elnarddogg