当某些条件发生变化时,我有两个流信号。我需要一个 Observable ,它会true
在所有条件转变时触发true
。false
当他们中的任何一个转身时false
。如果某些条件是false
并且另一个更改false
我不需要引发事件。
这是我的做法:
// Introducing current states
private bool cond1 = false;
private bool cond2 = false;
void MyHandlingMethod(IObservable<bool> c1, IObservable<bool> c2)
{
c1.Subscribe(b => _state1 = b);
c2.Subscribe(b => _state2 = b);
var c3 = c1.Merge(c2).Select(_ => _cond1 && _cond2);
c3.Subscribe(b => /* some action goes here /*);
// ...
}
我想知道这是否是解决我的问题的正确方法以及是否有任何陷阱。例如,由于 rx 的异步特性,c3 订阅在 c1 和 c2 之前触发。