下面的代码
为什么onnext只调用了一次?当我删除subscribeOn时,每个数字都会调用它。当I subscribeOn io线程只调用一次时(对于8658)
有人能给我解释一下吗?
val subject = BehaviorSubject.create<Int>()
subject.onNext(2121)
subject.distinctUntilChanged().doOnNext {
Log.d("AHMET VEFA SARUHAN", it.toString())
}.subscribeOn(Schedulers.io()).subscribe(object : Observer<Int> {
override fun onSubscribe(d: Disposable?) {
}
override fun onNext(t: Int?) {
}
override fun onError(e: Throwable?) {
}
override fun onComplete() {
}
})
subject.onNext(5436)
subject.onNext(8658)发布于 2020-12-12 03:19:27
通过使用subscribeOn,观察BehaviorSubject的链是与调用onNexts的线程并发建立的。subscribeOn生效需要时间,因此主线程只是超前运行,同时将主体的当前值覆盖到最新的值。
一般来说,在Subject上使用subscribeOn没有实际的理由。
https://stackoverflow.com/questions/65253049
复制相似问题