次の 3 つ (またはそれ以上) の観測可能なシーケンスがありbool
ます。
IObservable<bool> a0 = ...;
IObservable<bool> a1 = ...;
IObservable<bool> a2 = ...;
これらのシーケンスはほとんどの値を生成しますが、たまにfalse
値が生成されますtrue
(シーケンスは空になることもあります)。値自体には興味がありませんが、値の順序に興味がありtrue
ます。したがって、がa0
trueであり、最終的に が である場合、何らかのアクションを実行したいと思います。true
a2
a1
(a0, a2, a1) => ...do something...
しかし、true
値が別の順序で表示される場合は、別のことをしたいと思います。
(a2, a1, a0) => ...do something else...
(a0, a1, a2) => ...do something entirely else...
したがって、各シーケンスの最初の値のみに関心がtrue
あり、それらが発生する順序に応じて、何らかのアクションを実行したいと考えています。
が最初に発生するたびにタイムスタンプを記録してからtrue
、呼び出しを並べ替えることができCombineLatest
ますが、もっと良い方法があると感じています。このアプローチの問題点の 1 つは、記録されたタイムスタンプの粒度に依存するようになったことです。