所以我正在做一个教程,其中包含有关异步 JavaScript 的部分。我觉得我已经掌握得很好了,但它包含的这一部分对于捕获错误来说我觉得是错误的?
async function myFunction {
// ...
await someObject.methodThatReturnsPromise();
// ...
await aFunctionThatReturnsPromise();
// ...
}
try {
// ...
myFunction();
// ...
} catch (e) {
// error handling code
}
这是它给出的解释。
您可以在下面的示例中看到它是如何工作的。myFunction() 是一个在 try...catch 块中调用的异步函数。当 myFunction() 运行时,代码执行会在 methodThatReturnsPromise() 处暂停,直到承诺得到解决,此时代码将继续执行 aFunctionThatReturnsPromise() 并再次等待。如果异步函数中抛出错误,catch 块中的代码将运行,如果任一方法返回的承诺被拒绝,就会发生这种情况。
我的理解是,这都是错误的?要捕获错误,要么将try...catch
块放在里面,要么在全局上下文中myFunction()
调用时捕获错误myFunction()
myFunction().catch((error) => console.log(error));