Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步函数上的自动错误传递_Javascript_Ecmascript 2016 - Fatal编程技术网

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。如果你想看到它的功能的官方描述,你可以,但它是相当密集的。