我正在访问一个端点,该端点为我提供了一个用户列表,但结果是分页的。响应包含一个标志 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/