【发布时间】:2019-10-24 04:48:55
【问题描述】:
private val searchSubject = PublishSubject.create<Boolean>()
private val compositeDisposable = CompositeDisposable()
fun textChange(){
searSubject.onNext(true)
}
fun getSubject(){
compositeDisposable += searchSubject
.doOnNext {
if (it) showLoading()
}
.switchMap { searchGithubReposObservable() }
.subscribeWith(object : DisposableObserver<List<GithubRepo>>() {
override fun onNext(t: List<GithubRepo>) {
hideLoading()
adapter.items = t
}
override fun onComplete() {
}
override fun onError(e: Throwable) {
hideLoading()
}
})
}
- searchGithubReposObservable 是返回
Observable<List<GithubRepo>>的函数
我在 github 中搜索了学习 RxJava 的示例代码。 但是,我看不懂上面的代码。
我知道要从 PublishSubject 接收数据,我需要订阅它。
在上面的代码中,我认为subscribeWith 订阅了 searchGithubReposObservable() 的 return Observable ,但是我可以在调用 textchange() 时从 PublishSubject 获取数据。
为什么会这样?
【问题讨论】:
标签: android kotlin rx-java rx-java2