RxJava主题的真实世界用例

Ste*_*ung 10 android rx-java

有很多很棒的文章解释了RxJava.但几乎没有一个用现实世界的例子来解释这个概念.

所以我基本上理解RxJava Subject的概念就像一个管道而且它是observableobserver.

但我不知道Android开发世界中这个RxJava主题的实际使用情况.你能详细说明一下吗?

pau*_*aul 1

就我而言,是因为我有一个 Observable 正在等待另一个 Observable 发出的一项,这是异步的,因为它是 Interval。

Scheduler scheduler = RxHelper.scheduler(vertx.getOrCreateContext());


Observable.just(callAnotherObservable)
          .subscribe(item -> System.out.println(item)

public Observable<String> callAnotherObservable(Scheduler scheduler, ){
          Subject subject = ReplaySubject.create(1);
          Observable.interval(100,TimeUnit.MILLISECONDS)
          .map(i->"item to be passed to the other observable")
          .subscribe(subject);
          return subject.observeOn(scheduler).first();//Here we wait for the first emission of the interval Observable.

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我们使用 subject.first() 来等待间隔 observable 的第一次发射,该间隔在另一个线程中运行。

如果您想查看“hotObservables”的更多示例https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/connectable/HotObservable.java