javascript - 如果其中一个承诺得到解决,如何使承诺调用成功?
问题描述
我正在使用 Promise.all 来合并响应,但如果一个承诺失败它会引发错误我有一个承诺返回成功的调用但一个失败我如何通过解决两个承诺来解决这个问题?
buildHeader 函数将接受两个响应,无论两个调用返回什么,如果它的错误也应该返回,所以我可以获得部分详细信息
main.ts
private async execute(@Request() request: ExpressRequest): Promise < any > {
let _combineData: any =[];
try {
const _dataSpecialty = this.specialtyHandler.specialtyRequestHandler(request);
const combinedResponses = await Promise.all([
_dataSpecialty,
this.caremarkHandler.caremarkRequestHanlder(request)
]);
_combineData = this.buildHeader(combinedResponses, request.body);
} catch(err) {
return err;
}
return _combineData;
}
private buildHeader(combinedResponse: any[],
request: ICombinedAccountBalanceRequest): any {
return {
getAccountBalanceResponse: {
header: makeVordelSuccessHeader(request),
details: combinedResponse
}
};
}
解决方案
推荐阅读
- posix - POSIX 选择从不返回正数
- shopware - 如何手动卸载shopware插件
- c# - 是否可以让 ASP.NET Core 解决方案包含具有不同目标框架的项目?
- android - SearchView默认不填满整个Actionbar,点击也不响应
- excel - Excel - 奇怪的匹配行为?
- c# - 如果应用程序关闭 WCF 客户端连接
- sql - SQL Server 添加列然后更新列错误
- php - 使用 twilio 的 php notify API 时,如何设置回调 URL?
- python-sphinx - 如何为 sphinx 文档设置 BASE URL?
- python - PYQT5:使用 for 循环或其他东西来创建许多相同类型的 QSlider