Свести несколько потоков, с событиями только последнего потока - PullRequest
0 голосов
/ 11 октября 2018

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─┤

Я не могу использовать flatMap на x, потому что тогда все x_i события будут объединены в выходной поток, а не только события самого последнего подпотока.

Я также не могу использовать concatMap, потому что x_i бесконечны, и выходной поток будет эффективно x_1.

Это кажется мне довольно распространеннымСценарий, отсюда мой вопрос: возможно ли это с помощью стандартного RxDart (который я использую), или мне нужно реализовать это самостоятельно?

1 Ответ

0 голосов
/ 11 октября 2018

Вы ищете swtichLatest оператор rxdart

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

...