如果我有此返回声明
return await foo1().then(() => foo2());
并且foo1和foo2都是异步的,代码将等待foo2还是仅foo1的解析?
谢谢。
答案 0 :(得分:1)
await
等待整个表达式foo1().then(...)
,无论...
是什么。这同样适用于then
-s链(您在注释中要求它)。
另外,您在这里实际上并不需要await
,只需返回由Promise
(或其中的一个链)创建的then
,请参见Difference between `return await promise` and `return promise`进行解释。>
答案 1 :(得分:1)
return await somePromise();
是反模式,因为
await
将本身为Promise的somePromise()
的结果包装在新创建的Promise中。
return somePromise();
是正确的形式。
答案 2 :(得分:0)
是的,它将等待,因为await
运算符的优先级低于.
运算符。
但是,您的代码无法利用await
来提供出色的可读性。
首选
await foo1();
const result = await foo2();
return result;