我有一个基本的异步功能,该功能使用Axios检索用户列表。我正在调用的Discourse API的响应被分页为每页包含50个用户-我需要调用相同的调用5次才能获得所有用户,如下面的脚本所示。.唯一更改的参数是{{1} }
&page=
虽然可行,但看起来很麻烦,我想知道是否有更简洁有效的方法?
答案 0 :(得分:0)
这是一个开始:
for(var i = 0; i < 100; i++){
const [response] = await Promise.all([
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=${i}&period=all`)])
答案 1 :(得分:0)
您可以按照以下方式进行操作:
// create Array containing all calls
const calls = [...Array(5).keys()].map(x =>
axios.get(`https://meta.discourse.org/directory_items.json?order=days_visited&page=${x}&period=all`)
)
// This will ensure that all api calls happen parallely
const [one, two, three, four, five] = await Promise.all(calls);
var users_array = one.data.directory_items.concat(two.data.directory_items, three.data.directory_items, four.data.directory_items, five.data.directory_items)