我有一组可观察对象,每个对象都使用不同的请求 ID 发出 API 请求。
我目前正在使用 combineLatest 来检索 HttpEvent 对象并尝试计算在回调中下载的进度。
但是,combineLatest 会为每个 observable 发出整个响应数组,即使该 HttpEvent 没有附加任何进度。
我想知道在这个用例中组合多个 observable 的最佳 rxjs/operator 是什么?
代码:
let featureDescriptionObsvs: Observable<any>[] = [];
for (let key of Object.keys(res.breakdown)) {
featureDescriptionObsvs.push(this.dataServ.getFeatureDescription(key));
}
combineLatest(...featureDescriptionObsvs).subscribe((events: any) => {
events.map((event: HttpEvent<any>): void => {
switch (event.type) {
case HttpEventType.Sent:
break;
case HttpEventType.ResponseHeader:
break;
case HttpEventType.DownloadProgress:
totalProgress += event.loaded / event.total;
break;
case HttpEventType.Response:
break;
}
});
let avgProgress = totalProgress / featureDescriptionObsvs.length;
console.log(avgProgress * 100);
console.log('\n');
});