【发布时间】:2021-08-05 00:59:05
【问题描述】:
我想知道如果没有异步函数内部的 try/catch 块,我们是否可以得到错误和 Promise 的结果。
(async function(){
let { user, error } = await getUser();
.
.
.
{ user, error } = await user.save();
})();
在不使用 try/catch 块或 .then().catch() 的情况下,有没有更简洁的 Promises 错误处理方式?
【问题讨论】:
-
错误没有得到解决,它被拒绝了。所以不,试试 catch 或 .catch。
-
@jonrsharpe 好的,感谢您的回答。请让我根据您的评论添加另一个问题。考虑到我有几个设置为等待的 Promise,它们都执行不同的任务。如果我将它们全部放在 try/catch 块中,我该如何处理错误?我的意思是我怎么知道哪个是抛出错误?如果我对所有这些都使用 .catch() ,我如何回调将错误返回到主异步函数?我需要使用回调吗?
-
如果你想知道哪一个出错了,你不要把它们都放在同一个try块中。
-
你有
Promise.all,Promise.allSettled,Promise.any, andPromise.race以干净的方式聚合多个待处理的承诺。 -
你实际上并不想要承诺的错误和结果,it's not cleaner。
标签: javascript asynchronous async-await