![](/img/trans.png)
[英]How to handle reject promise error in outer try catch with inner Promise.all?
[英]Can I error handle await Promise.all with a try-catch block?
我有以下代码:
但目前没有以任何方式处理错误。 用这样的 try-catch 包围那段代码是否正确:
try/catch
是从Promise.all
捕获错误的正确方法,但与此同时,一旦只有一个请求失败,它就会忽略所有已完成的请求,如果您仍然希望拥有其他成功请求的数据,那么这并不理想记录错误,所以我建议你使用Promise.allSettled
使用此解决方案,它将保留所有请求,包括失败的请求和成功的请求
const [groupedMeditations, meditationPreferences] = await Promise.allSettled([
getMeditationsByGroup(),
getAllPreferences(),
]);
一个可能的结果可以是
[
{status: "fulfilled", value: "successful value"}, // your 1st request passed
{status: "rejected", reason: "Error: an error"} //your 2nd request failed
]
从该响应中,您可以过滤或记录错误
一方面请注意, Promise.allSettled
不适用于 IE,因此您需要使用polyfill来克服这一点
希望对您的情况有所帮助:D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.