我使用了一个有点复杂的API,我需要你的一些帮助。
这就是了。我正在获取包中的重要数据。每个包包含10个包,但我需要创建一个包含所有包的列表
例如:
我从其中之一获取数据:'1','2','3','4','5','1','2','3','4','5',然后我得到下一个包:'4','5‘,'1','2','3','1','2','3','4','8’,以及下一个和下一个,直到我的情况成立。
所以我使用do-while循环来完成。看起来是这样的:
do {
this.getMyDataPart(i).then( result => {
list = list.concat(result);
i++;
});
} while(cool);
getMyData(idofPackege: number): Observable<DataObject> {
return this.http.get<DataObject>(this.apiURL + idofPackege);
}
问题是,我不知道这个循环会被执行多少次,所以我需要一个接一个地执行这些操作。经过近2个小时的尝试后,我不知道如何才能做好。
我必须等到结果出来之后,才能决定递增i并获得另一包数据。
发布于 2018-07-10 09:56:00
您可以使用Async/await来强制javascript执行等待异步API调用的返回,如下所示:
async myAsyncFunction() {
do {
const parcialList = await this.getMyDataPart(i);
list = list.concat(parcialList);
i++;
} while(cool);
}
getMyData(idofPackege: number): Observable<DataObject> {
return this.http.get<DataObject>(this.apiURL + idofPackege);
}
有关详细信息,请参阅以下链接:
https://stackoverflow.com/questions/51253418
复制相似问题