我有一个可观察的数组,我正在并行执行:
let observables: Observable<any>[]
Observable.forkJoin(observables)
Run Code Online (Sandbox Code Playgroud)
这很好用,但是,我需要按顺序执行可观察数组,如果最后一个observable已经完成,则只发出一个结果.那是我试图使用的时候
Observable.concat(observables)
Run Code Online (Sandbox Code Playgroud)
但是这会返回多个结果,而不仅仅是我在使用forkJoin时得到的一个结果.所以我实际上需要两者的结合.
我尝试使用reduce功能按顺序执行它们,如下所示:
return observables.reduce((previous, current) => {
return previous.flatMap(() => current);
}, Observable.empty());
Run Code Online (Sandbox Code Playgroud)
但是使用这个解决方案,可观察量根本不会被执行.