使用条件操作链接rxjava2调用的更好方法

时间:2018-02-15 15:46:46

标签: android reactive-programming rx-java2

我有以下代码,它执行一次调用,获取调用的结果,这是一个布尔值,然后在结果为false时进行第二次调用。

Table View Cell

似乎应该有一种更优雅的方式在某种链中做到这一点。

2 个答案:

答案 0 :(得分:1)

您可以使用flatMap运算符 - 缺点是您不知道第一个或第二个运算符是否失败。

  Single.just(phoneNumber)
       .subscribeOn(Schedulers.io())
       .map { it -> contactPhoneNumber.doesEmailContactExist(it) }
       .flatMap { it ->
             if (it) {
                 return@flatMap contactPhoneNumber.linkEmailAndTextTogether(phoneNumber)
              }
              Single.just(it)
        }.subscribe({}, Throwable::printStackTrace);

答案 1 :(得分:0)

这应该有所帮助。

val single = SingleOnSubscribe<Boolean> {
     getSingle()
   }

   Single.create(single).map({
    if (it){
        return@map getCompleteable()
    }
    return@map Completable.complete()
})