javascript - 如何在响应 hasMore 标志为真时链接 axios 获取请求

标签 javascript api axios

我正在访问一个端点,该端点为我提供了一个用户列表,但结果是分页的。响应包含一个标志 hasMore,它指示是否有更多用户要检索,以及一个 offset 以进行下一个 api 调用。

现在我可以通过手动检查结果 hasMore 是否为真来进行多次调用。如何将此逻辑包装在 while 循环中?

function getUsers() {
  let users = [];
  
  axios.get(url)
    .then(res => {
      res.users.forEach(user => {
        users.push(user);
      })
      
      if (res.hasMore) {
        return axios.get(url + '&offset=' + res.offset)
      }
    })
    .then(res => // repeat what I've just done and keep checking hasMore
    // How do I check this in a while?
    
}

最佳答案

你能把 users = [] 上一层吗?

let users = [];

function getUsers(url) {

  axios
    .get(url)
    .then(res => {
      res.users.forEach(user => {
        users.push(user);
      })

      if (res.hasMore) {
        getUsers(url + '&offset=' + res.offset);
      }
    })
    .catch(err => {...});
}

关于javascript - 如何在响应 hasMore 标志为真时链接 axios 获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50992642/

相关文章:

javascript - 如何将其包装在 javascript 函数中?

javascript - 在 JavaScript 中读取 Firebase 数据库后,For 循环不起作用

javascript - 函数对象、上下文和 this

node.js - 如何让用户在api中添加参数?

javascript - 如何使用 Axios 响应作为 for 循环中的参数?

javascript - 需要帮助限制数组/优化 axios 响应

javascript - jQuery:删除ajax成功添加的类

php - 对非常相似的图像进行排序 PHP OCR

javascript 从 div 获取 html 或文本

javascript - 将 axios 响应保存到状态 react Hook