【问题标题】:Angular 4, multiple api calls and wait for resultsAngular 4,多个api调用并等待结果
【发布时间】:2019-05-09 14:40:29
【问题描述】:

我正在循环调用服务 api,然后我想等待所有结果。我不确定如何在这里使用 Observable.forkJoin。

组件:

for(let i=0;i<data.length;i++{
    this.component.getData(data[i].id).then((result: any) => {


                })
    }

服务:

getData(parameters:any): Promise<Object> {
    return this.query(parameters)
  }

【问题讨论】:

标签: angular angular-promise


【解决方案1】:

这里的关键是Promise.all,它在执行你的回调之前等待所有的promise解决。

let promises = data.map(d => this.component.getData(d.id));

Promise.all(promises).then(results => {
  console.log(results);
});

【讨论】:

  • 这里不需要for循环吗? for(let i=0;i this.component.getData(d.id));}
  • 啊,Array.map你一定不熟悉。它在功能上与您的原始 for 循环等效,只是它还从传递给它的 lambda 函数返回的值构建一个新数组。在这种情况下,传递给 map 的 lambda 函数返回一个 Promise,因此 map 返回一个 Promise 数组。
猜你喜欢
  • 2021-03-17
  • 1970-01-01
  • 2019-10-21
  • 2019-01-20
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2020-06-18
相关资源
最近更新 更多