UNPKG

691 BPlain TextView Raw
1function reflect<T>(promise: Promise<T>): Promise<SettledPromise<T>> {
2 return promise.then(
3 (v: T) => {
4 return {status: 'fulfilled', value: v};
5 },
6 (error) => {
7 return {status: 'rejected', reason: error};
8 }
9 );
10}
11
12/**
13 * Drop in replacement for Promise.allSettled
14 *
15 * see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
16 */
17export async function allSettled<T>(promises: Promise<T>[]): Promise<SettledPromise<T>[]> {
18 return Promise.all(promises.map(reflect));
19}
20
21export interface SettledPromise<T> {
22 status: 'fulfilled' | 'rejected';
23 value?: T;
24 reason?: any;
25}
\No newline at end of file