展平多个流,仅包含最后一个流的事件
Flatten multiple streams, with events of only of the last stream
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(我正在使用),或者我需要自己实现吗?
您要查找的是 swtichLatest
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(我正在使用),或者我需要自己实现吗?
您要查找的是 swtichLatest
rxdart