我有以下代码,它执行一次调用,获取调用的结果,这是一个布尔值,然后在结果为false时进行第二次调用。
Table View Cell
似乎应该有一种更优雅的方式在某种链中做到这一点。
答案 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()
})