如何观察特定的事件组合



我有多个观察与Rx的FromEventPattern,例如:

var a = Observable.FromEventPattern(...); // event A
var b = Observable.FromEventPattern(...); // event B
var c = Observable.FromEventPattern(...); // event C

如何观察这些事件的特定顺序?

。,我想观察在一个特定的有限的时间框架内,当A和C发生,但中间没有B的情况。

或者:ABC then ABC then just b

这对你有用吗?

var query = a.Select(_ => c.TakeUntil(b)).Switch();

这在5秒的时间段内是否有效?

var query = a
    .Select(_ => c
        .TakeUntil(b)
        .TakeUntil(Observable.Timer(TimeSpan.FromSeconds(5.0))))
    .Switch();

否则,您需要查看WindowJoin操作符

最新更新