之间有什么区别吗
const foo = async () => {
// some other code that uses await
return await bar()
}
和
const foo = async () => {
// some other code that uses await
return bar()
}
其中bar
是一个返回promise的函数。
await
是多余的还是有什么区别?
它是多余的。
它从bar返回的promise中提取值,然后用它解析foo
返回的promet
如果您直接返回bar
的promise,那么foo
返回的promise也会采用它。
如果Promise被拒绝,在您编写的两个示例中,错误将被抛出到不同的地方。
在第一种情况下,foo
内部会发生拒绝错误。
在第二个步骤中,调用foo
的函数将发生被拒绝的错误
是。
如果函数bar((返回一个Promise,那么在第二种情况下,foo将返回一个挂起的Promise(一个尚未解析的Promise(。在第一种情况下,foo将在等待Promise解析后返回Promise解析的数据