将数据上传到服务器然后使用RxJava本地存储的最佳方法是什么

时间:2018-04-30 11:51:17

标签: android rx-java2

我想做两件事:将一些数据上传到服务器,然后使用服务器返回的id将数据保存到本地数据库。使用RxJava的最佳方法是什么?我厌倦了做这样的事情,但我想这不是最好的解决方案,因为地图和flatMap的副作用。我正在使用Retrofit与服务器进行通信,ObjectBox作为本地数据库和当前RxJava2

private fun saveMyData(data: MyData) =
        uploadToServer(data).flatMap {
                    saveToLocalRepository(it)
                }


private fun uploadToServer(data: MyData): Single<MyData> =
    dataApiService.uploadMyData(data).map { id: Long -> 
                data.copy(serverId = it)
            }

private fun saveToLocalRepository(data: MyData): Single<MyData> =
        localRepository.save(data).map{ id: Long -> 
            data.copy(id = it)
        }

0 个答案:

没有答案