我试图每次都从api返回所有结果。相反,我的结果各不相同。for循环跳过请求并返回随机数量的返回记录。有人能帮忙吗?
我试过使用async and await函数。我也尝试过实现这个承诺,但是我认为我没有为api请求正确地设置它。
// Get all ref codes and group by into an array.
async getAllRefCodes() {
const url = `${this.irRefCodes}`;
const refCodes = [];
let totalPage = 0;
const params1 = new HttpParams().set('size', '20').set('page', `0`);
await this.http.get(`${url}`, {params: params1 }).toPromise().then((data) => {
console.log(data['page'].totalPages);
console.log(data['page'].totalElements);
totalPage = data['page'].totalPages;
});
for (let x = 0; x < totalPage; x++) {
this.getRefCodesByPage(refCodes, url, x);
console.log('Done');
}
await Promise.all(refCodes);
console.log(refCodes);
}
// Getting all ref codes from API per page.
async getRefCodesByPage(refCodes, url, pageNumber) {
const params = new HttpParams().set('size', '20').set('page', `${pageNumber}`);
const promise = new Promise ((resolve, reject) => {
this.http.get(`${url}`, {params: params})
.toPromise().then((refCodeData) => {
const refCode = refCodeData['_embedded'].refCodes;
refCodes.push(...refCode);
});
resolve();
return promise;
});
await Promise.all(promise);
}
希望每次都能拿到所有的唱片。常数