我的目标可能最容易用大理石图来解释。
我有两个 Observable,xs 和 ys。我想返回一个名为 rs 的 Observable。
xs --x---x---x---x-------x---x---x-
\ \ \
ys ----y-----------y---y---y-------
| | |
rs ----x-----------x-------x-------
y y y
所以,我需要类似于 CombineLatest 的东西,除了它应该只在 xs 后跟一个 ys 时触发。该模式之外的其他 xs 或 ys 不应触发输出,应丢弃。
CombineLatest、Zip 或 And/Then/When 不执行我需要的操作,而且我找不到任何方法来指定更复杂的连接结构。
最佳答案
我最终使用了Join。
var rs = xs.Join(ys,
_ => xs.Merge(ys),
_ => Observable.Empty<Unit>(),
Tuple.Create);
这是一篇很好的文章,解释了 Join 的工作原理:
http://blogs.microsoft.co.il/blogs/bnaya/archive/2012/04/04/rx-join.aspx
关于c# - 合并两个 Observables,但仅当第一个 obs 紧跟在第二个 Observable 之前,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13319241/