Rxjs Observable按顺序运行并返回一个数组

时间:2017-03-17 19:36:57

标签: rxjs observable

var arr = [obs1, obs2, obs3];
Observable.forkJoin(...arr).subscribe(function (observableItems) {})

并行运行observable并返回一个数组。

如何顺序运行observable 返回一个数组。我不想为每个observable调用,因此concat()不适合我。

我想收到与forkJoin相同的最终结果,但是按顺序运行。

它存在吗?或者我是否必须编写自己的可观察模式?

1 个答案:

答案 0 :(得分:11)

只需使用readyRead,然后使用concat

toArray

如果你需要行为,更类似于var arr = [obs1, obs2, obs3]; Observable.concat(...arr).toArray().subscribe(function (observableItems) {}) (只获得每个observable的最后结果),正如@cartant在评论中提到的那样:在连接它们之前,你需要在observables上应用forkJoin运算符:

last