gpt4 book ai didi

java - RxJava zip 作用于 parent 双方的每一次改变

转载 作者:行者123 更新时间:2023-11-30 08:01:28 25 4
gpt4 key购买 nike

我在 GUI 中工作,我有多种类型的事件可能会导致按钮被禁用。我已经尝试了几种方法来组合这两个 Observable,但我发现的每个解决方案都需要两个 Observable 在产生结果之前发布一个事件。例如,在这段代码中:

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
}
}

但我得到的输出是:

false
true

有没有什么方法可以与 Observables 结合,以便它们“缓存”最后的结果并对每个变化使用react?

最佳答案

您正在寻找 combineLatest()每次任何组合的可观察量发出时都会发出。它仍然需要它们中的每一个至少发射一次,但您可以将 .startWith() 添加到所有组合的可观察对象中,以确保它们具有初始发射。

关于java - RxJava zip 作用于 parent 双方的每一次改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com