Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 可观察开关开启条件_Kotlin_Rx Java_Rx Java2 - Fatal编程技术网

Kotlin 可观察开关开启条件

Kotlin 可观察开关开启条件,kotlin,rx-java,rx-java2,Kotlin,Rx Java,Rx Java2,我有两个观测值,我想使用第一个,除非它没有给我想要的(在本例中是一个空列表)。如果是这样的话,我想换第二个 fun test() { listSource1().switchMap { if (it.isEmpty()) listSource2() else listSource1() } } fun listSource1() = Observable.just(emptyList<String>()) fun listSource2() =

我有两个观测值,我想使用第一个,除非它没有给我想要的(在本例中是一个空列表)。如果是这样的话,我想换第二个

fun test() {

    listSource1().switchMap {
        if (it.isEmpty()) listSource2() else listSource1()
    }

}

fun listSource1() = Observable.just(emptyList<String>())

fun listSource2() = Observable.just(listOf("hello"))
fun测试(){
listSource1().switchMap{
if(it.isEmpty())listSource2()else listSource1()
}
}
fun listSource1()=可观察的.just(emptyList())
fun listSource2()=可观察的.just(listOf(“hello”))

还有比这更好的方法吗?将
listSource1
映射到
listSource1
似乎很奇怪,这是正确的方法吗?

FlatMap首先查看项目是否为空列表:

可观测源=。。。
可观察的后备资源=。。。
source.flatMap(列表->{
if(list.isEmpty()){
返回后备资源;
}
返回可观察的。刚(列表);
});