JSPM

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

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

Package Exports

  • p-reflect

Readme

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.

import pReflect from 'p-reflect';

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 exactly that.

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…