代码之家  ›  专栏  ›  技术社区  ›  Axel

如何在javascript中等待多个请求?

  •  1
  • Axel  · 技术社区  · 6 年前

    我有以下几点:

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

    如您所见,我首先验证令牌,然后返回所有用户。这里我用两个 await s。

    根据这个问题: How run async / await in parallel in Javascript ,我应该使用 Promise.all() . 但是,问题是我需要检查 res.exists 强制性的,所以我想我不能用 承诺。全部() !

    我只想知道我目前使用的方法是否正确,如果可能,我如何使用 承诺。全部() 在这里?

    2 回复  |  直到 6 年前
        1
  •  2
  •   You Nguyen    6 年前

    我只是想知道,如果我现在使用的方法 是对的还是错的,如果可能的话,我该如何使用promise.all()。 在这里?

    您当前使用的方法是正确的!

    如我们所见,您的应用程序逻辑必须按顺序执行。

    首先,验证令牌

    如果令牌有效,则允许访问服务器的资源,该资源是用户列表。

    如果你使用 Promise 要处理这些异步操作,还需要将这些承诺链接起来,以便实现应用程序逻辑。

        2
  •  0
  •   Mohit Mutha    6 年前

    你所做的看起来很适合你的问题。但是,当您需要在一个链中执行的活动数量增加时,链接会变得很麻烦。

    在这种情况下,您还可以尝试使用异步瀑布。 https://caolan.github.io/async/docs.html#waterfall