Je travaille dans une interface graphique et j'ai plusieurs types d'événements qui peuvent entraîner la désactivation d'un bouton. J'ai essayé plusieurs façons de combiner ces deux observables, mais chaque solution que j'ai trouvée a nécessité que les deux Observables publient un événement avant qu'un résultat soit produit. Par exemple, dans ce code:RxJava zip qui agit sur chaque changement des deux parents
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
}
}
Mais la sortie que je reçois est:
false
true
Est-il possible de combiner à Observables afin qu'ils « cache » le dernier résultat et réagir à chaque changement ?