продолжить после разрешения нескольких функций ожидания - PullRequest
1 голос
/ 13 июля 2020

Я пытаюсь установить некоторые переменные, равные результату ожидания функции, но я хочу, чтобы функции asyn c выполнялись одновременно.

мой код:

async function track() {

  var track = await getTrack(urlParams.get('track'))

  var trackAnalysis = await getTrackAnalysis(urlParams.get('track'))

  var artists = await getArtists(artistIds)

  //then do something with all 3 variables after they have all been resolved

}

1 Ответ

1 голос
/ 13 июля 2020

Если вы хотите, чтобы они выполнялись одновременно, и они на самом деле являются асинхронными и возвращают обещание, которое разрешается с соответствующим значением, вы можете использовать Promise.all() для их одновременного запуска:

async function track() {
    let [track, trackAnalysis, artists] = await Promise.all([
        getTrack(urlParams.get('track')),
        getTrackAnalysis(urlParams.get('track')),
        getArtists(artistIds)
    ]);
    // do something with all 3 variables
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...