android - 从可完成到可观察的 RxJava

我有返回可完成的方法

interface MyClass{
  fun getSomething(): Completable
}

如果它是完整的,我想将它映射到 Observable.just(true) 或如果它不完整/错误则映射到 Observable.just(false)

像这样的东西(伪代码)

getSomething().doIf {
       if (it.onComplete){
          return Observable.just(true)
    } else {
          return Observable.just(false)
    }
}

有没有像我的方法 doIf 一样的东西?

我试图使用 Observable.fromcallable{}myClass.getSomething().toObservable 来实现它,但没有任何效果。

是否有可能实现这一目标以及如何做到这一点?

回答1

将其转换为 Single,然后转换为 Observable:

getSomething()
.toSingleDefault(true)
.onErrorReturnItem(false)
.toObservable()

或转换为 Observable 和 flatMap 信号

getSomething()
.toObservable()
.flatMap(
    { Observable.never<Boolean>() }, 
    { Observable.just(false) }, 
    { Observable.just(true) }
)

相似文章

最新文章