Последовательность вызова функций await - PullRequest
2 голосов
/ 10 марта 2020

Я хотел бы знать, как я могу украсить фрагмент кода в javascript, который выглядит так

async sequenceOfFunctionCalls () {
   await callFunction1();
   await callFunction2();
   ...
   await callFunctionN(); 
}

1 Ответ

6 голосов
/ 10 марта 2020

Если вы хотите запустить их последовательно (не параллельно), я бы сказал, что самый простой вариант:

for (let func of [callFunction1, callFunction2, ..., callFunctionN]) {
    await func();
}

Чтобы запустить их параллельно:

await Promise.all([callFunction1, callFunction2, ..., callFunctionN].map(f => f()));

или

await Promise.allSettled([callFunction1, callFunction2, ..., callFunctionN].map(f => f()));
...