【发布时间】:2018-12-28 14:09:54
【问题描述】:
如果我的异步函数前面没有等待,下面的 JavaScript try catch 块是否仍会捕获错误,如下所示?
async () => {
try {
someAsynchronouseFunction();
} catch (err) {
// will errors from my asynchronous function still be caught here?
}
}
【问题讨论】:
-
你测试了吗?发生了什么?我猜不会,因为没有
await,你只会调用一个返回promise的函数,错误会传递给任何catch回调而不是调用者。 -
如果
someAsynchronouseFunction真的是异步的,它只会返回一个未解决的承诺(你甚至不存储),并且代码将继续。然后异步函数可能会在稍后执行,抛出一个错误,并且该错误将无处被捕获。
标签: javascript asynchronous error-handling async-await try-catch