具有多个可观察对象的Angular 6 RXJS HttpRequest进度

时间:2018-08-08 11:40:14

标签: rxjs angular6 combinelatest

我有一系列可观察对象,每个可观察对象使用不同的请求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');
            });

0 个答案:

没有答案