【发布时间】:2019-11-19 13:21:22
【问题描述】:
我正在使用 RxJava 重构我的存储库的实现,所以我想知道一些编辑方法,例如,用户。 我的 getUser(email: String),以 email 作为 id,正在返回一个 observable,并且在存储库实现中,我要么从数据库或服务器获取数据,现在一切都很好。
我想要实现的是编辑用户。为此,我将拥有和 update(user: User) 功能,而使用它的天真的方式是
userRepository.getUser(email)
.subscribeOn(Schedulers.io())
.subscribe { user ->
user.name = "antoher name"
userRepository.update(user)
.subscribeOn(Schedulers.io())
.subscribe {
//handle response
}
}
有没有办法避免在观察者内部调用这种类型的观察者?它对我来说不是很可读,我想有更好的方法,但我不明白。
注意:我使用的是干净的架构,所以我认为更新每个字段,让我在数据模块中获取用户是不正确的,因为我会订阅数据中的观察者,并且当活动破坏时很难处理
对我来说与When do you use map vs flatMap in RxJava? 的问题不同,因为尽管 flatMap 是回答问题的东西,但它不是同一个问题,所以任何有相同问题/问题但不知道该 flatmap 的人是答案,永远无法使用平面地图。
【问题讨论】:
-
您可以使用 flatMap 运算符。
-
flatMap变成userRepository.update? -
你能给我一个平面图的例子吗?我没用过
-
(使用提供的链接十四行诗作为副本投票)When do you use map vs flatMap in RxJava?
标签: android kotlin rx-java repository-pattern