【发布时间】:2019-12-09 18:57:05
【问题描述】:
我有一个基本的异步函数,它使用 Axios 检索用户列表。我正在调用的 Discourse API 的响应被分页以包含每页 50 个用户 - 我需要调用相同的调用 5 次以获取所有用户,如下面的脚本所示.. 唯一更改的参数是 &page=
const [one, two, three, four, five] = await Promise.all([
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=0&period=all`),
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=1&period=all`),
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=2&period=all`),
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=3&period=all`),
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=4&period=all`)
]);
var users_array = one.data.directory_items.concat(two.data.directory_items, three.data.directory_items, four.data.directory_items, five.data.directory_items)
虽然这可行,但似乎很麻烦,我想知道是否有更简洁有效的方法来做到这一点?
【问题讨论】:
-
如果你这样做,你怎么知道你会得到所有的用户?如果随着时间的推移更多,如果更少怎么办?如果你真的想加载所有数据,你应该运行一个循环,直到你确定你有所有页面......
标签: javascript axios concat