.. | ||
index.d.ts | ||
index.js | ||
license | ||
package.json | ||
readme.md |
p-reflect
Make a promise always fulfill with its actual fulfillment value or rejection reason
Useful when you want a promise to fulfill no matter what and would rather handle the actual state afterwards.
Install
$ npm install p-reflect
Usage
Here, Promise.all
would normally fail early because one of the promises rejects, but by using p-reflect
, we can ignore the rejection and handle it later on.
const pReflect = require('p-reflect');
(async () => {
const promises = [
getPromise(),
getPromiseThatRejects(),
getPromise()
];
const results = await Promise.all(promises.map(pReflect));
console.log(results);
/*
[
{
isFulfilled: true,
isRejected: false,
value: '🦄'
},
{
isFulfilled: false,
isRejected: true,
reason: [Error: 👹]
},
{
isFulfilled: true,
isRejected: false,
value: '🐴'
}
]
*/
const resolvedString = results
.filter(result => result.isFulfilled)
.map(result => result.value)
.join('');
console.log(resolvedString);
//=> '🦄🐴'
})();
The above is just an example. Use p-settle
if you need this.
API
pReflect(promise)
Returns a Promise<Object>
.
The object has the following properties:
isFulfilled
isRejected
value
orreason
(Depending on whether the promise fulfilled or rejected)
promise
Type: Promise
A promise to reflect upon.
Related
License
MIT © Sindre Sorhus