如何订阅Observable或Flowable的几个订阅者?

时间:2017-01-24 09:12:54

标签: rx-java rx-java2

在Hello World示例中,有一个订阅者

   public static void main(String[] args) {
      Flowable.just("Hello world").subscribe(System.out::println);
   }

如何制作两个或更多?

1 个答案:

答案 0 :(得分:3)

您可以将多个子协议订阅到任何可观察/可流动的。只需根据需要重复subscribe次呼叫即可。

Flowable<String> source = Flowable.just("Hello world");
source.subscribe(System.out::println);
source.subscribe(System.out::println);
...

hot cold observable在处理此类多个订阅的方式上存在差异。

Cold observables / flowables为每个新订阅者从源代码重新请求项目。例如,Flowable.fromCallable(c)每次订阅时都会调用c

Hot observables / flowables与所有订阅者共享相同的源订阅,即他们不会为每个新订阅者从源请求新项目。新项目将传播到所有当前订阅的订阅者。