【发布时间】:2020-04-02 15:18:49
【问题描述】:
在我的一个组件中,我需要遍历一组 id 并为每个组件进行 API 调用。 api 调用返回 observables,目前我只是订阅循环中的每一个并将其值添加到数组中。我不认为这很好,因为我正在单独订阅每个电话。有没有办法我可以使用mergeMap 或类似的东西来创建循环中所有组合值的可观察值?
这样我就可以订阅一个 observable(或使用 HTML 中的异步管道)而不是多个?
这是我的控制器代码:
export class GraphTablesComponent implements OnInit {
@Input() meta: any;
@Input() entityId: number;
kpiData: Array<any> = [];
constructor(
private apiService: ApiService
) { }
ngOnInit() {
this.getKpiData();
}
private getKpiData(): void {
for (const m of this.meta) {
this.apiService.post(`${Endpoints.KPIS}execute/${m._bid}/${this.entityId}`, {}).subscribe(d => this.kpiData.push(d));
}
}
}
【问题讨论】: