顺序订阅一系列可观察对象

R_B*_*_BD 6 fork-join observable rxjs angular

在这里,我使用forkJoinrxjs来并行地订阅一个可观察对象数组。但是我要一个一个地订阅,什么是最好的解决方案?

下面是我的代码:

var observables = [];

Observable.forkJoin(observables)
    .subscribe(() => {
        this.msgs = [];
        this.msgs.push({
            severity: 'success',
            summary: 'Saved Successfully'
        });
        this.onSaveComplete();
    }, (error: any) => this.errorMessage = <any>error);
}, (error: any) => this.errorMessage = <any>error);
Run Code Online (Sandbox Code Playgroud)

Fiy*_*san 6

forkJoin 的替代方法意味着您需要按顺序订阅 observables 数组。merge并且concat是在这种情况下的方法。在您的情况下,当使用mergeand时,修改您的代码并在您的可观察数组的最开始使用扩展运算符concat。

var observables = [];
Observable.concat(...observables)
            .subscribe(() => {
                this.msgs = [];
                this.msgs.push({
                    severity: 'success',
                    summary: 'Saved Successfully'
                });
                this.onSaveComplete();
            }, (error: any) => this.errorMessage = <any>error);
    }, (error: any) => this.errorMessage = <any>error);
Run Code Online (Sandbox Code Playgroud)