【发布时间】:2020-06-04 09:13:55
【问题描述】:
我需要遍历对象数组并为每个对象进行 API 调用。根据响应中的对象数量,我正在创建新对象并推入一个数组。下面是示例代码。例如,如果最初有 2 个提供者,每个提供者有 2 个位置,updatedProviderList 将有 4 个提供者。这工作正常。
问题是,updateProvidersInState 只有在所有 API 调用和相关逻辑都完成后才能调用。我已尝试使用如下所示的索引,但它不起作用。只有在所有 API 调用完成后才能调用 updateProvidersInState 的任何方法?
let providers = []; //assume this is already populated
let updatedProvider;
let updatedProviderList;
providers.forEach((prv, index) => {
this.dataService.getLocation(prv.id).subscribe((response: LocationResults) => {
response.locations.forEach((location, i) => {
updatedProvider = cloneDeep(prv);
updatedProvider.location = location;
updatedProviderList.push(updatedProvider);
if (index === providers.length - 1 && i === response.length - 1) {
this.updateProvidersInState(updatedProviderList);
}
});
});
});
【问题讨论】:
标签: angular rxjs observable