java - 在 RxKotlin/RxJava 中使用 BehaviourSubject 惯用地创建热可观察对象

标签 java rxjs rx-java rx-java2 rx-kotlin

目前我正在使用 RxKotlin 在 Kotlin 中构建一个项目。我的 Rx 背景主要基于 RxJS。

我经常用于在 Typescript 中创建热可观察对象的模式看起来类似于:

  private dataStore: IFoo;
  private dataStoreSubject: BehaviorSubject<IFoo> = new BehaviorSubject(this.dataStore);
  public dataStoreObservable: Observable<IFoo> = Observable.from(this.dataStoreSubject);

  public getNetworkData(): Observable<IFoo[]> {
      return this.http.get()
         .map((response: IResponse) => {
             this.dataStore = <IFoo[]>response;
             this.dataStoreSubject.next(this.dataStore);
             return this.dataStore;
          });
   }

这将允许我公开一个 Observable,而不公开 Subject 以及随后的 subject.next(); 方法。

我的问题是:在 RxKotlin 或 RxJava 中建立类似逻辑的最惯用方法是什么?

最佳答案

您需要使用组合和转换。您可以将主题和可观察对象之间的“链接”添加到转换中。

关于java - 在 RxKotlin/RxJava 中使用 BehaviourSubject 惯用地创建热可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48568178/

相关文章:

clojure - rxjava 和 clojure 异步之谜 : futures promises and agents, 哦天哪

java - 如何在AngularJS中使用JAVA创建的 session

javascript - debounceTime 每次发送请求

typescript - 如何将 RxJs 6 与 TypeScript 和 WebPack 一起使用

java - 我可以使用 retryWhen 并在达到限制时返回可观察值吗?

rx-java - 在后台线程上可观察到的进程

java - 为什么 new String ("a") == new String ("a") 给出 false 并且 "a"= ="a"给出 true。为什么在后面的案例中它们似乎都被视为同一实例?

java - 在基于 fragment 的主从流程中自定义 ListView?

java - Java 中的 Setter 参数最终

javascript - 多个组件同时访问相同的数据