RxJava2合并和多播事件流

时间:2019-03-11 06:51:01

标签: rx-java2

我有一个事件源,该事件源发出一个Snapshot,然后发出Deltas,看起来有点像

Flowable.just("A", "1", "2", "3")

其中“ A”是快照,“ 1”,“ 2”,“ 3”将是更新。

我希望第一个订阅者检索

"A", "1", "2", "3"

第二个订户(假设它发生在“ 2”和“ 3”之间)将接收

"A".apply("1").apply("2"), "3"

所以我要寻找的是一个操作员,该操作员多播该流,但在所有后续订户中,从第一个发射到下一个发射之前一直发射混合值。

有人可以指出我正确的方向吗?开始编写自定义运算符,但我觉得我容易缺少一些东西。

//编辑

与我的同事进行了更多合作,我们提出了以下建议

Flowable.just("A", "1", "2", "3")
     .scan(Tuple(empty, empty), (prev, update) -> build "snapshot" "last delta" tuple
     .skip(1)
     .replay(1) // replay tuple of "current snapshot" "latest delta"
     .refCount() 
     .scan(empty, (prev, update) -> empty == prev ? update.snapshot : update.delta)
     .skip(1)

做工精美,希望对下一个尝试相同操作的人有用

1 个答案:

答案 0 :(得分:0)

与我的同事进行了更多合作,我们提出了以下建议

soup.select_one('div.col-xs-12 h2').text

做工精美,希望对下一个尝试相同操作的人有用