asyc \ await语法是否解析链接函数?

时间:2018-05-02 09:19:25

标签: javascript async-await

在这个例子中,如果函数运行了,两个promises会在foo返回之前得到解决吗?

async function() {
    var foo = await iReturnAPromise().iReturnAPromiseUnrelatedToMyParent();
    return foo;
}

1 个答案:

答案 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));