我想做两件事:将一些数据上传到服务器,然后使用服务器返回的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)
}