Ich arbeite in einer GUI und ich habe mehrere Arten von Ereignissen, die möglicherweise eine Schaltfläche deaktiviert werden. Ich habe verschiedene Möglichkeiten versucht, diese beiden Observablen zu kombinieren, aber jede Lösung, die ich gefunden habe, hat beide Observables dazu gezwungen, ein Ereignis zu veröffentlichen, bevor ein Ergebnis produziert wird. Zum Beispiel in diesem Code:RxJava Zip, die auf jede Änderung von beiden Elternteilen wirkt
public class Test {
public static void main(String[] args) {
PublishSubject<Boolean> conditionAStream = PublishSubject.create();
PublishSubject<Boolean> conditionBStream = PublishSubject.create();
conditionAStream
.zipWith(conditionBStream, (conditionA, conditionB) -> conditionA && conditionB)
.subscribe(result -> System.out.println(result));
conditionAStream.onNext(false);
conditionBStream.onNext(false);
//Expected output: false
conditionAStream.onNext(true);
//Expected output: false
conditionBStream.onNext(true);
//Expected output: true
conditionAStream.onNext(false);
//Expected output: false
}
}
Aber der Ausgang ich erhalte, ist:
false
true
Gibt es eine Möglichkeit zu Observable zu kombinieren, so dass sie „Cache“ das letzte Ergebnis und auf jede Veränderung reagieren ?