Rx java 动态修改可观察到的间隔类型
我正试图解决一个具体的问题。根据已经发出的信息,我想交替地将可观测数据从一种类型转换为另一种类型 例如:Rx java 动态修改可观察到的间隔类型,rx-java,rx-java2,Rx Java,Rx Java2,我正试图解决一个具体的问题。根据已经发出的信息,我想交替地将可观测数据从一种类型转换为另一种类型 例如: Observable.just(Math.random()).flatMap { item -> if (item > 0.5) { convert to interval type and repat new Math.random() every specific time interval } else { leave as it is } } 好吧,我知道我想出了这
Observable.just(Math.random()).flatMap { item ->
if (item > 0.5) {
convert to interval type and repat new Math.random() every specific time interval
} else {
leave as it is
}
}
好吧,我知道我想出了这种幼稚的方法,对此我很不高兴
if (needToRepeat) {
make Observable.interval().flatMap { prepareObservable() }
} else { prepareObservable() }
fun prepareObservable() = Observable.just(Match.random()).map { boolean = it.boolean }
您可以尝试以下方法:
Observable.just(Math.random())
.switchMap { item ->
if (item > 0.5) {
Observable.interval(1, TimeUnit.SECONDS).map { Math.random() }
} else {
Observable.just(item)
}
}
对于每个项目
,如果满足条件,这将创建一个可观察的
,每秒发出一个随机的双
。有了
switchMap
,每次外部可观察的发射一个新的项目
,之前的内部可观察的
就被处理掉了,这样你总是只得到最新的`可观察的谢谢:)它的工作原理几乎和我想要的一样!当项目小于0.5时,是否有可能停止更新?对不起,Rx不是我喜欢的东西。当原始的可观察物发射一个项目时