想在RxJava中从可观察发射器获得真值后获取api



我正在研究RxJava。我已经为可观察类创建了一个包含true和false值的随机布尔流。

可观察类别应在x秒的随机持续时间(10到90秒之间(后重复。在每个真值之后,我需要调用API并更新UI。

我已经编写了以下代码来生成随机布尔值并通过observable传递它们。但是,如何在每x秒后重复可观测?

val r = Random
val apiResultStream = Observable.create(object : Observable.OnSubscribe<Boolean> {
override fun call(subscriber: Subscriber<in Boolean>) {
// emit true or false
subscriber.onNext(r.nextBoolean())
}
}).repeat(10)
apiResultStream
.subscribe { result ->
if (result === true) {
Log.v("ABC",""+result);
callAPI()
} else {
//callFailureApi()
Log.v("ABC",""+result);
}
}

我想Observable.interval(30, TimeUnit.SECONDS)就是您需要的:

Observable.interval(30, TimeUnit.SECONDS) //also can specify scheduler
.flatMap { apiResultStream }
.subscribe { result ->
if (result === true) {
Log.v("ABC",""+result);
callAPI()
} else {
//callFailureApi()
Log.v("ABC",""+result);
}
}

最新更新