Javascript 异步函数上的自动错误传递
我有一些Javascript 异步函数上的自动错误传递,javascript,ecmascript-2016,Javascript,Ecmascript 2016,我有一些async函数,它在等待一些承诺,这些承诺可能会被拒绝,我希望将所有错误传递给函数返回的承诺。JS是否自动执行此操作 例如: async foo(){ bar_result = await bar(); baz_result = await baz(); return 'ok'; } foo() .then(console.log) .catch(console.error); 如果bar()或baz()被拒绝,在上述示例中会发生什么情况?直观地说,它们将在.ca
async
函数,它在等待一些承诺,这些承诺可能会被拒绝,我希望将所有错误传递给函数返回的承诺。JS是否自动执行此操作
例如:
async foo(){
bar_result = await bar();
baz_result = await baz();
return 'ok';
}
foo()
.then(console.log)
.catch(console.error);
如果bar()
或baz()
被拒绝,在上述示例中会发生什么情况?直观地说,它们将在.catch(console.error)
行被捕获
我的另一个想法是将函数的内容包围在
try
块中,然后catch(err){throw err;}
,但它看起来是多余的…在async
函数中,如果一个承诺被wait
拒绝,函数将立即终止,它返回的承诺将被拒绝(与被拒绝的wait
ed承诺的值相同)。您的函数将按需要工作-如果bar
或baz
拒绝,console。错误将导致拒绝被记录(并且console.log
将不会被调用)。在异步函数中,如果承诺被wait
拒绝,函数将立即终止,它返回的承诺将被拒绝(与被拒绝的wait
ed承诺的值相同)。您的功能将按需要工作-如果bar
或baz
拒绝,则console.error
将导致拒绝被记录(并且console.log
将不会被调用)。您有此方面的来源吗?我一直在试图从一些文档中找到证据。这就是wait
的工作原理-如果您愿意,您可以自己尝试不同的bar
s和baz
s。如果你想看到它的功能的官方描述,你可以,但它相当密集。你有这方面的来源吗?我一直在试图从一些文档中找到证据。这就是wait
的工作原理-如果您愿意,您可以自己尝试不同的bar
s和baz
s。如果你想看到它的功能的官方描述,你可以,但它是相当密集的。