Javascript 当我的异步函数前面没有wait时,try-catch块会捕获错误吗?

Javascript 当我的异步函数前面没有wait时,try-catch块会捕获错误吗?,javascript,asynchronous,error-handling,async-await,try-catch,Javascript,Asynchronous,Error Handling,Async Await,Try Catch,如果我的异步函数前面没有wait,下面的JavaScript try-catch块还会捕获错误吗 async () => { try { someAsynchronouseFunction(); } catch (err) { // will errors from my asynchronous function still be caught here? } } 不,它们不会,因为某些AsynchronouseFunction;将只解析为被拒

如果我的异步函数前面没有wait,下面的JavaScript try-catch块还会捕获错误吗

async () => {
   try {
      someAsynchronouseFunction();
   } catch (err) {
      // will errors from my asynchronous function still be caught here?
   }
}
不,它们不会,因为某些AsynchronouseFunction;将只解析为被拒绝的承诺,而被拒绝的承诺本身不会导致错误,即使在try块中也是如此。相反,你只会看到承诺中的错误:错误!在控制台中:

异步函数someAsynchronouseFunction{ 等待新的允诺者=>setTimeoutres,1000; log'someAsynchronouseFunction的结束,即将抛出'; 抛出新错误'err!'; } 常量foo=async=>{ 试一试{ 一些异步函数; }犯错误{ console.log“发现错误:”+错误; } console.log'end of foo'; } 傅 不,它们不会,因为某些AsynchronouseFunction;将只解析为被拒绝的承诺,而被拒绝的承诺本身不会导致错误,即使在try块中也是如此。相反,你只会看到承诺中的错误:错误!在控制台中:

异步函数someAsynchronouseFunction{ 等待新的允诺者=>setTimeoutres,1000; log'someAsynchronouseFunction的结束,即将抛出'; 抛出新错误'err!'; } 常量foo=async=>{ 试一试{ 一些异步函数; }犯错误{ console.log“发现错误:”+错误; } console.log'end of foo'; }
傅;你测试过了吗?怎么搞的?我猜不会,因为如果不等待,您将只调用一个返回承诺的函数,错误将传递给任何catch回调,而不是调用方。如果某个AsynchronouseFunction确实是异步的,它只会返回一个未解析的承诺,而您甚至不存储该承诺,代码将继续。异步函数随后可能会执行并抛出错误,而该错误将不会被捕获。您测试过它吗?怎么搞的?我猜不会,因为如果不等待,您将只调用一个返回承诺的函数,错误将传递给任何catch回调,而不是调用方。如果某个AsynchronouseFunction确实是异步的,它只会返回一个未解析的承诺,而您甚至不存储该承诺,代码将继续。异步函数随后可能会执行并抛出错误,而该错误将不会被捕获。