Another ES6 promise implementation (compliant with Promises/A+)
npm install parole
# alternatively you can use bower (minified version by default)
yarn add parole
Parole
implements ES6 Promise specs
Implements:
- Promise.prototype.then
- Promise.prototype.catch
- Promise.prototype.finally
Also static methods
- Promise.resolve
- Promise.reject
- Promise.all
- Promise.allSettled
- Promise.any
- Promise.race
Includes:
- Promise.defer
// parole respects the es6 promise specification
// you can use parole as global polyfill
if( !window.Promise ) {
window.Promise = Parole;
}
new Parole((resolve, reject) => {
resolve('gogogo!')
})
.then((result) => {
console.log('checkpoint 1', result)
throw 'whoops!'
})
.then(
(result) => {
console.log('checkpoint 2', result)
},
(result) => {
console.log('checkpoint 2.1', result)
return new Parole((resolve, reject) => {
setTimeout(() => resolve('all right!'), 400)
})
},
)
.then(
(result) => console.log('checkpoint 3', result),
(reason) => console.log('checkpoint 3.1', reason),
)
;
output
checkpoint 1 gogogo!
checkpoint 2.1 whoops!
# elapsed 400ms
checkpoint 3 all right!