我有一系列可观察对象,每个可观察对象使用不同的请求ID发出API请求。
我目前正在使用CombineLatest检索HttpEvent对象,并尝试计算回调中下载的进度。
但是,即使没有HttpEvent的任何进度,combinateLatest也会为每个可观察的对象发出整个响应数组。
我想知道在这种用例中结合多个可观察对象的最佳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');
});