想象一下,您有一个可通过其中一个Replay
overloads创建的重播可观察对象。
是否有Replay
的变体使用允许我从重放缓冲区中删除项/消息/元素的方法生成重播observable?
我需要重播observable以避免竞争条件:两个可观察的A
和B
产生相关的消息。如果A
生成了m
消息,那么B
可能会跟随相应的消息m'
(但这是可选的)。
为了从m'
的所有消息中过滤掉B
,A
的订阅者向B
注册订阅者(已过滤精确m'
消息),因为只有在收到m
时,程序才能预测可能传入的m'
的内容。
但是,即使在m'
的订阅者计划运行之前,有时A
也会到达,这意味着尚未注册m'
的订阅者。我可以通过将B
包装为重播可观察对象来解决这个问题,但我希望能够从重放缓冲区中清除已处理的消息,因为我知道每个B
的消息都是只由一个订户处理。
答案 0 :(得分:0)
var result = foo.Replay().Where(x => x != skip);