Разрешает ли синтаксис asyc \ await связывать функции? - PullRequest
0 голосов
/ 02 мая 2018

В этом примере, если функция была запущена, оба обещания будут разрешены до возврата foo?

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

1 Ответ

0 голосов
/ 02 мая 2018

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...