首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 5-获取异步数据

Angular 5-获取异步数据
EN

Stack Overflow用户
提问于 2018-07-10 04:18:09
回答 1查看 506关注 0票数 0

我使用了一个有点复杂的API,我需要你的一些帮助。

这就是了。我正在获取包中的重要数据。每个包包含10个包,但我需要创建一个包含所有包的列表

例如:

我从其中之一获取数据:'1','2','3','4','5','1','2','3','4','5',然后我得到下一个包:'4','5‘,'1','2','3','1','2','3','4','8’,以及下一个和下一个,直到我的情况成立。

所以我使用do-while循环来完成。看起来是这样的:

代码语言:javascript
复制
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并获得另一包数据。

EN

回答 1

Stack Overflow用户

发布于 2018-07-10 09:56:00

您可以使用Async/await来强制javascript执行等待异步API调用的返回,如下所示:

代码语言:javascript
复制
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://labs.encoded.io/2016/12/08/asyncawait-with-angular/

https://javascript.info/async-await

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51253418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档