我对该功能的响应有疑问。该函数应返回游戏的所有ITEMID的串联列表。该列表可以根据一次出售的内容而改变。第一个axios调用用于获取前1000个项目编号和页数。然后,我将不得不对页面的数量进行axios调用以检索所有项目编号。似乎有些乏味,但我认为没有办法解决。 问题在于该函数未运行其他页面,仅在其他响应返回之前返回前1000个项目。有没有更好的方法来实现此功能?
export const getAllItemID = (region) => {
let finalList = [];
let pages = 0;
let currentPage = 1;
let region_buy_id = `URL For Call`;
axios
.get(region_buy_id)
.then(json => {
pages = json.headers['x-pages'];
for(let k in Object.values(json.data)){
finalList.push(json.data[k]);
}
currentPage++;
})
.then(()=>{
while(currentPage <= pages) {
let region_buy_id = `URL For Call`;
axios
.get(region_buy_id)
.then((json) => {
for(let k in Object.keys(json.data)){
finalList.push(json.data[k]);
}
});
currentPage++;
}
})
.then(()=>{
return finalList;
});
}
Updated Function
export async function getAllItemID(region) {
let finalList = [];
let pages = 0;
let currentPage = 1;
let region_buy_id = `URL`;
await axios
.get(region_buy_id)
.then(json => {
pages = json.headers['x-pages'];
for(let k in Object.values(json.data)){
finalList.push(json.data[k]);
}
currentPage++;
});
while(currentPage <= pages) {
let region_buy_id = `URL`;
await axios
.get(region_buy_id)
.then((json) => {
for(let k in Object.keys(json.data)){
finalList.push(json.data[k]);
}
});
currentPage++;
}
}