可观察到的.以排他性而不是共享的方式选择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中的焦点控件)非常有用。
有这样的东西吗?我可以为这种行为组合已知的算子吗?
您需要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上的这一节,您将看到它具有相同的大理石