Javascript 正在等待.then()语句
如果我有这个返回声明Javascript 正在等待.then()语句,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,如果我有这个返回声明 return await foo1().then(() => foo2()); 而且foo1和foo2都是异步的,代码是等待foo2的解析还是只等待foo1 谢谢。是,它将等待,因为wait运算符的优先级低于运算符 但是,您的代码未能利用await,它提供了优异的可读性 偏爱 await foo1(); const result = await foo2(); return result; wait等待整个表达式foo1()。然后(…),而不管是什么。这同样适用于
return await foo1().then(() => foo2());
而且foo1和foo2都是异步的,代码是等待foo2的解析还是只等待foo1
谢谢。是,它将等待,因为
wait
运算符的优先级低于
运算符
但是,您的代码未能利用await
,它提供了优异的可读性
偏爱
await foo1();
const result = await foo2();
return result;
wait
等待整个表达式foo1()。然后(…)
,而不管是什么。这同样适用于然后-s的链(您在评论中询问了它)。
此外,您实际上不需要await
,在这里,您只需返回创建的承诺
(或一系列承诺),请参阅以获取解释。返回await somePromise()代码>是一种反模式,因为
wait
将somePromise()
的结果包装在新创建的Promise中,该结果本身就是一个Promise
返回somePromise()代码>是正确的形式。如果承诺返回承诺,则它将成为链的一部分,因此它将同时等待这两个承诺。但是说如果你使用wait,我会放弃then。如果我们有10个,这会是一样的吗。然后?我只是想知道在同一行中使用这两个的行为。谢谢你两个都可以用,但我现在经常用承诺,那时候很少用。但是它仍然派上了用场,例如创建一种程序分叉。。