RXJS如何将Observable <T []>转换为Observable <T>

iam*_*1me 5 javascript rxjs rxjs5

我想采用Observable <T []>并将其转换为Observable <T>,以便Observable <T []>中的每个数组都被分解,然后通过单独的方式发出数组的各个元素Observable <T>.

这样做有标准的操作员吗?我已经四处寻找但没找到任何东西.谢谢.


在指向concatMap/flatMap的方向后,我提出了以下一般解决方案:

var source: Observable<T[]>;
...
var splitSource = source.flatMap<T>((x:T[]) => { return Rx.Observable.fromArray(x); });
Run Code Online (Sandbox Code Playgroud)

use*_*222 6

你可以concatMap像这样使用:

function identity (x) {return x}

var obs_of_array$ = Rx.Observable.return(['1','2','you got it'])
    .concatMap(identity)
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为concatMap它还接受数组(和observables和promises)作为您作为参数传递的函数选择器的返回值.Jsbin 在这里,文档在这里

因此,作为参数传递的数组成为选择器函数的返回值,然后在遵守concatMap数组顺序的同时由运算符展平.