gpt4 book ai didi

javascript - 当我的异步函数前面没有 await 时,try catch block 会捕获错误吗?

转载 作者:行者123 更新时间:2023-11-30 09:21:22 28 4
gpt4 key购买 nike

如果我的异步函数前面没有 await,下面的 JavaScript try catch block 是否仍会捕获错误,如下所示?

async () => {
try {
someAsynchronouseFunction();
} catch (err) {
// will errors from my asynchronous function still be caught here?
}
}

最佳答案

不,他们不会,因为 someAsynchronousEFunction(); 只会解决被拒绝的 Promise,而被拒绝的 Promise 本身不会' 导致错误,即使在 try block 中也是如此。相反,您只会在控制台中看到 Uncaught (in promise) Error: err!:

async function someAsynchronouseFunction() {
await new Promise(res => setTimeout(res, 1000));
console.log('end of someAsynchronouseFunction, about to throw');
throw new Error('err!');
}

const foo = async () => {
try {
someAsynchronouseFunction();
} catch (err) {
console.log('error found: ' + err);
}
console.log('end of foo');
}

foo();

关于javascript - 当我的异步函数前面没有 await 时,try catch block 会捕获错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51439566/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com