Обещания не выполняются в ожидаемом порядке - PullRequest
1 голос
/ 23 марта 2020

Я уверен, что мне здесь не хватает чего-то простого, у меня есть куча обещаний, которые нужно выполнить по порядку. В этом примере функция 4 запускается до завершения функции 3. Все функции, вызываемые здесь, возвращают обещание.

await self.function1()
  .then(await function () {
    self.function2()
  })
  .then(await function () {
    return self.function3()
  })
  .then(await function () {
    return self.function4()
  })

1 Ответ

1 голос
/ 23 марта 2020

Это должно быть примерно так: Вы должны использовать один из async-await или Promise.then

async function test() {
    await self.function1();
    await self.function2();
    const response1 = await self.function3();
    const response2 = await self.function4(response1);
    return response2;
}

ИЛИ

function test() {
    return self.function1()
        .then(() => self.function2())
        .then(() => self.function3())
        .then((response1) => self.function4(response1));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...