可观察到的.以排他性而不是共享的方式选择many

本文关键字:共享 方式 选择 many 观察 排他性 | 更新日期: 2023-09-27 18:19:10

我想要一个非常类似于xs.SelectMany(_ => ys)的可观察运算符,只是不同之处在于,对于每个新的输入值,应该取消订阅延续/选择器函数的先前结果,使独占消息总线而不是共享。

在大理石

:

xs      S----o-----o----o------>
             |     |    |
ys1          S-o-o-+o-o-+o----->
               | | |    |
ys2            | | S-oo-+--o--->
               | |   || |   
ys3            | |   || S---o-->
               | |   ||     |
result        So-o---oo-----o-->

注意,一旦x的第二个值产生ys2, ys1就不会产生任何结果。结果应该取消订阅ys1。我希望这明确了我想要的:某种多路复用行为。这对于更改触发事件的源(例如GUI中的焦点控件)非常有用。

有这样的东西吗?我可以为这种行为组合已知的算子吗?

可观察到的.以排他性而不是共享的方式选择many

您需要Switch http://msdn.microsoft.com/en-us/library/hh229197%28v=vs.103%29.aspx,如果您阅读Switch http://www.introtorx.com/content/v1.0.10621.0/12_CombiningSequences.html上的这一节,您将看到它具有相同的大理石

相关文章: