展平多个流,仅包含最后一个流的事件

时间:2018-10-11 08:43:19

标签: flutter reactive-programming reactivex rxdart

x是流。在每个事件上,我都会生成一个流x_i,它本身会产生事件。通过此设置,我想生成一个平坦的输出流,其中仅包含最近x_i的事件,直到x结束:

x:   ├─┬───┬─────┬────────┤
x_3:   │   │     └─E────H───I─...
x_2:   │   └─B───D────G───────...
x_1:   └─A─────C────F─────────...

预期结果是

     ├───A───B───D─E────H─┤

我不能在x上使用flatMap,因为所有x_i事件都将合并到输出流中,而不仅仅是最新子流中的事件。

我也不能使用concatMap,因为x_i是无限的,并且输出流实际上是x_1

在我看来,这是一个相当常见的情况,因此我的问题是:是否可以使用标准RxDart(我正在使用),还是需要自己实现?

1 个答案:

答案 0 :(得分:3)

您正在寻找的是{x1art}的swtichLatest运算符

http://reactivex.io/documentation/operators/switch.html enter image description here