【问题标题】:Combine two obserable booleans with either ObservableBoolean or Observable<Boolean>将两个 observable boolean 与 Observable Boolean 或 Observable<Boolean> 组合
【发布时间】:2015-12-30 14:26:17
【问题描述】:

在 JavaFX 中,您可以执行以下操作来组合两个可观察的布尔值:

BooleanProperty imagesDownloaded = new SimpleBooleanProperty(false);
BooleanProperty animationComplete = new SimpleBooleanProperty(false);

BooleanBinding isValid = imagesDownloaded.and(animationComplete);

如何使用 RxJava 或谷歌的数据绑定 API 做同样的事情? 我还想听听isValid 变量的值变化。

【问题讨论】:

    标签: java android asynchronous rx-java observable


    【解决方案1】:

    您可以根据自己的目标使用Observable.combineLatest()Observable.zip()Observable.merge() 和其他operators

    我将添加一个简短的示例来展示这在 RxJava 中的样子:

    PublishSubject<Boolean> property1 = PublishSubject.create();
    PublishSubject<Boolean> property2 = PublishSubject.create();
    
    Observable.combineLatest(property1,
                             property2,
                             (propertyOneValue, propertyTwoValue) -> propertyOneValue && propertyTwoValue)
              .subscribe(isValid -> doWork(isValid));
    
    // sometime later
    property1.onNext(true);
    property2.onNext(true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2019-05-11
      • 2017-06-29
      相关资源
      最近更新 更多