Await an array of promises to be settled, then reject with an AggregateError upon failure, or resolve with an array of values upon success.
It works like Promise.allSettled except it will reject with an AggregateError if some of the promises are rejected, otherwise it resolves with the fulfilled values like Promise.all.
try {
const [a, b, c, d] = await promiseSettledAggregate([
Promise.reject(new Error("Boom")),
Promise.resolve(2),
Promise.resolve(true),
Promise.reject(new Error("Pow")),
]);
} catch (err) {
err.errors.forEach(console.error);
}
You may copy the source code (see dist for JS) directly into your project as this library is published under the Unlicense license.
You can also install it as a npm dependency:
npm install promise-settled-aggregate