store.sourcematerialtableData = [];
store.sourcematerialtableData2 = [];
const { data } = await ApiService.get(RESOURCE, `files?uuid=${UUID}&access_token=${ACCESS_TOKEN}&page=1`);
if (data.data.next_page_url != null) {
const regex = /page=(\d+)/;
const match = data.data.next_page_url.match(regex);
const endIndex = parseInt(match[1]);
for (let index = 1; index <= endIndex; index++) {
await findmaterial2(index);
}
}
}
async function findmaterial2(page) {
const { data } = await ApiService.get(RESOURCE, `files?uuid=${UUID}&access_token=${ACCESS_TOKEN}&page=${page}`);
const newData = data.data.data.map(obj => {
const { id, tags, name } = obj;
const newObj: User = {
id,
label: [],
name,
};
if (obj.tags.length !== 0) {
const str = tags[0].name;
newObj.label = str.split(",");
}
return newObj;
});
store.sourcematerialtableData.push(...newData);
store.sourcematerialtableData2.push(...data.data.data);
}
主要犯错
1.在 findmaterial 函数中,你使用了一个循环来请求多个页面的数据。然而,这个循环中的每个请求都是异步的,并且没有等待每个请求的完成,因此无法保证数据的顺序和完整性。你可以考虑使用 async/await 来改善这个问题,以确保每个请求都完成后再进行下一步操作。
2.在两个请求中,你使用了字符串拼接来构建 URL。这种方式容易出错,并且不够直观。你可以考虑使用 URL 参数的方式来构建 URL,以更清晰和可维护的方式处理 URL 参数。