首页 > 解决方案 > 一个 Observable 对另一个 RxJava2 的依赖

问题描述

有一个类,它有可观察的字段。我要更新localData

在接收远程数据时remoteData,由于某种原因无法获取数据localData,调试时连断点都没有getIdsInDatumsRemote ()。该identifyDatumsForUpdate ()方法得到一个空的 Observable。

class DiskDatumDataStore {

    var remoteData: Observable<Data>? = null

    var localData: Observable<Data>? = null

    override fun sync() {
        remoteDatums = getChangedRemoteData(lastUpdated!!, 1000)!!
        localDatums = remoteDatums!!.map {
            getIdsInDatumsRemote(it)
        }.map {
            it.map {
                it.toLong()
            }
        }.flatMap {
            getOldLocalData(it)
        }


        identifyDatumsForUpdate(datumsForUpdateLocal, datumsForUpdateRemote)
    }

    override fun getOldLocalData(remoteDatumsIds: List<Long>): Observable<List<DataLayerTypesOfResponsibility>> {
        return Observable.fromCallable { repository.getOldDatum(remoteDatumsIds) }      
    }
}

标签: javakotlinrx-java2rx-kotlin2

解决方案


你不是subscribing你的Observable。你只是在创造它。

localDatums = remoteDatums!!.map {
            getIdsInDatumsRemote(it)
        }.map {
            it.map {
                it.toLong()
            }
        }.flatMap {
            getOldLocalData(it)
        }.subscribe { it->
            //do something with the result `it`
        }


推荐阅读