JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 607683
  • Score
    100M100P100Q173486F
  • License MIT

Make a promise always fulfill with its actual fulfillment value or rejection reason

Package Exports

  • p-reflect

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (p-reflect) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

p-reflect Build Status

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 or reason (Depending on whether the promise fulfilled or rejected)

promise

Type: Promise

A promise to reflect upon.

  • p-settle - Settle promises concurrently and get their fulfillment value or rejection reason
  • More…

License

MIT © Sindre Sorhus