[英]RXJS How to convert Observable<T[]> to Observable<T>
我想采用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); });
我也一直在努力将Observable<T[]>
转换为Observable<T>
。
我发现flatMap()
完成了它自己的工作,我认为11个月前问题的问题并非如此。
为了说明,在@ user3743222的答案的jsfiddle中,您可以进行此更改并获得相同的输出:
//.concatMap(identity)
.flatMap(theArray=>theArray)
我使用this和toArray()
运算符在管道中执行set操作,例如对observable进行排序。
let sorted$ = source$.toArray().flatMap(theList=> theList.sort(this.myComparer) )
输出是Observable<T>
。 ( NB在固定数组的上下文中工作,不确定连续生成源会发生什么)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.