Как ждать нескольких запросов в Javascript? - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть следующее:

async fetch() {
  const res = await axios.get('/api/validate/randomtoken')
  if(res.exists) {
    await axios.get('/api/users')
  }
}

Как видите, я сначала проверяю токен и возвращаю всех пользователей обратно.Здесь я использую два await.

Согласно этому вопросу: Как запустить асинхронное / ожидание параллельно в Javascript , я должен использовать Promise.all().Однако проблема в том, что мне нужно проверить, если res.exists принудительно, поэтому, я думаю, я не могу использовать Promise.all()!

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

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

То, что вы делаете, выглядит правильно для вашей проблемы.Однако цепочка становится громоздкой, когда увеличивается количество действий, которые вам нужно выполнить в цепочке.

Вы также можете попробовать асинхронный водопад в таком случае.https://caolan.github.io/async/docs.html#waterfall

0 голосов
/ 30 сентября 2018

Я просто хотел знать, что, если подход, который я сейчас использую, является правильным или нет, а также, если возможно, как я могу использовать Promise.all () здесь?

Подход, который вы используете в настоящее время, верен!

Как мы видим, логика вашего приложения должна выполняться последовательно.

Сначала проверяется токен

Если токен действителен, тогда разрешите доступ к ресурсу сервера, который является списком пользователей.

Если вы используете Promise для обработки этих асинхронных операций, вам также нужно связать эти обещаниядля реализации логики приложения.

...