@sap-cloud-sdk/util
Version:
SAP Cloud SDK for JavaScript general utilities
22 lines • 980 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.finishAll = finishAll;
/**
* Await all promises and resolve if non of them failed.
* Reject if at least one of them was rejected, but only once all of them are finished.
* Throws an error consisting of a list of reasons.
* @param promises - Promises to settle.
* @param errorMessage - Message to use as introductory text of the error if an error occurs.
*/
async function finishAll(promises, errorMessage) {
const settledPromises = await Promise.allSettled(promises);
const rejectedPromises = settledPromises.filter(promise => promise.status === 'rejected');
if (rejectedPromises.length) {
const reasons = rejectedPromises
.map(promise => `\t${promise.reason}`)
.join('\n');
const message = errorMessage ? `${errorMessage} ` : '';
throw new Error(`${message}Errors: [\n${reasons}\n]`);
}
}
//# sourceMappingURL=promise.js.map