使用RxJava编辑存储库模式中的数据

问题描述 投票:0回答:1

我正在使用RxJava重构我的存储库的实现,因此我想知道一些编辑方法,例如,用户。我的getUser(email:String),以id作为电子邮件,正在返回一个可观察到的消息,在存储库实现中,我现在从数据库或服务器获取数据,现在一切都很好。

我想实现的是编辑用户。为此,我将拥有and update(user:User)函数,并且使用它的天真方式将是

userRepository.getUser(email)
   .subscribeOn(Schedulers.io())
   .subscribe { user ->
      user.name = "antoher name"
      userRepository.update(user)
         .subscribeOn(Schedulers.io())
         .subscribe {
             //handle response
         }
    }

是否有一种方法可以避免在观察者内部进行这种观察者的调用?对我来说,它不是很可读,我想有一种更好的方法,但是我不明白。

[注意:我使用的是干净的体系结构,所以我认为每个字段的更新都使我无法进入数据模块,因为我会订阅数据中的观察者,并且在活动销毁时难以处置,这是不正确的] >

我正在使用RxJava重构我的存储库的实现,因此我想知道一些编辑方法,例如,用户。我的getUser(email:String)以电子邮件作为id,正在返回一个可观察到的内容,并且...

android kotlin rx-java repository-pattern
1个回答
0
投票

使用RxJava的一个优势是,您可以根据需要链接任意数量的异步操作(在您的情况下,该方法将返回Observable或Single,存储方法),而不会陷入回调地狱。您在代码中看到有嵌套的订阅块。如果您必须链接更多异步网络操作怎么办?您陷入回调地狱。

© www.soinside.com 2019 - 2024. All rights reserved.