rx-java 基础科目

示例

SubjectRxJava中的A是既是Observable和又是的类Observer。这基本上意味着它可以充当Observable和将输入传递给订阅者,以及Observer从另一个Observable获取输入。

Subject<String, String> subject = PublishSubject.create(); 
subject.subscribe(System.out::print);
subject.onNext("Hello, World!");

上面打印了“你好,世界!” 使用进行控制台Subjects。

说明

  1. 代码的第一行定义一个新Subject的类型PublishSubject

    Subject<String, String> subject = PublishSubject.create();
       |     |       |       |                 |
    subject<input, output>  name   = default publish subject
  2. 第二行订阅主题,显示Observer行为。

    subject.subscribe(System.out::print);

    这样一Subject来,用户就可以像普通订户一样接受输入

  3. 第三行调用onNext主题的方法,以显示Observable行为。

    subject.onNext("Hello, World!"); 

    这使能够Subject为所有订阅它的人提供输入。

种类

甲Subject(在RxJava)可以是任何这些四种类型:

  • 异步主题

  • 行为主体

  • 发布主题

  • 重播主题

另外,aSubject可以是type SerializedSubject。此类型确保Subject不会违反可观察合同  (该合同规定所有调用都必须序列化)

进一步阅读:

  • 使用或不使用Dave Sexton博客中的主题