在这个例子中,如果函数运行了,两个promises会在foo
返回之前得到解决吗?
async function() {
var foo = await iReturnAPromise().iReturnAPromiseUnrelatedToMyParent();
return foo;
}
答案 0 :(得分:2)
foo
实际上只能携带一个分辨率。你可能会喜欢
foo = await iReturnAPromise().then(v => (doSomeThingWith(v), iReturnAPromiseUnrelatedToMyParent()));
在这种情况下,foo
将被分配iReturnAPromiseUnrelatedToMyParent
的分辨率。但是,如果您想要访问这两个分辨率(彼此独立),那么您可能会喜欢;
async function test(){
[foo,bar] = await Promise.all([Promise.resolve(10), Promise.resolve(20)]);
return [foo,bar];
}
test().then(([a,b]) => console.log(a,b));