q-promise

promise polyfill with add-ons

Usage no npm install needed!

<script type="module">
  import qPromise from 'https://cdn.skypack.dev/q-promise';
</script>

README

q-promise

travis Build Status Wercker wercker status

Full Promises/A+ compliance

Installation

npm install q-promise --save

# alternatively you can use bower (minified version by default)
bower install q-promise --save

ES6 Promise

// q-promise respects the es6 promise specification
// you can use q-promise as global polyfill

if( !window.Promise ) {
  window.Promise = $q;
}

Example

$q(function (resolve, reject) {
        resolve('gogogo!');
    })

    .then(function (result) {
        console.log('checkpoint 1', result);
        throw 'whoops!';
    })

    .then(function (result) {
        console.log('checkpoint 2', result);
    },function (result) {
        console.log('checkpoint 2.1', result);
        return qPromise(function (resolve, reject) {
            setTimeout(function () { resolve('all right!'); }, 400);
        });
    })

    .then(function (result) {
        console.log('checkpoint 3', result);
    }, function (reason) {
        console.log('checkpoint 3.1', reason);
    })
;

output:

checkpoint 1 gogogo!
checkpoint 2.1 whoops!
# elapsed 400ms
checkpoint 3 all right!

Tests

make test