zoukankan      html  css  js  c++  java
  • RXJAVA之Subject

      RxJava中常见的Subject有4种,分别是 AsyncSubject、 BehaviorSubject、PublishSubject、 ReplaySubject。

    AsyncSubject

      使用AsyncSubject无论输入多少参数,永远只输出最后一个参数。

    BehaviorSubject

      BehaviorSubject会发送离订阅最近的上一个值,没有上一个值的时候会发送默认值。

    BehaviorSubject<Integer> subject = BehaviorSubject.create();
            subject.onNext(1);
            subject.onNext(2);
            subject.onNext(3);
            subject.onNext(4);
            subject.subscribe(new Consumer<Integer>(){
                @Override
                public void accept(Integer t) throws Exception {
                    System.out.println(t);
                    
                }});

    PublishSubject

      使用PublishSubject从那里订阅就从那里开始发送数据。

    PublishSubject<Integer> subject = PublishSubject.create();
            subject.onNext(1);
            subject.subscribe(new Consumer<Integer>(){
                @Override
                public void accept(Integer t) throws Exception {
                    System.out.println(t);
                    
                }});
            subject.onNext(2);
            subject.onNext(3);
            subject.onNext(4);

      输出结果2 3 4.

    ReplaySubject

      无论何时订阅,都会将所有历史订阅内容全部发出。

    ReplaySubject<Integer> subject = ReplaySubject.create();
            subject.onNext(1);
            subject.subscribe(new Consumer<Integer>(){
                @Override
                public void accept(Integer t) throws Exception {
                    System.out.println(t);
                    
                }});
            subject.onNext(2);
            subject.onNext(3);
            subject.onNext(4);

      输出结果1 2 3 4.

  • 相关阅读:
    Struts2+Uploadify文件上传使用详解
    jquery常用代码集锦
    springmvc+hibernate入门-揭开神秘的面纱
    Jqgrid入门-Jqgrid格式化数据(九)
    Jqgrid入门-Jqgrid分组的实现(八)
    利用jekyll架设个人博客
    Centos7安装jekyll
    服务器改造个人工作站经验总结
    王爽汇编环境搭建
    由于没有公钥,下列签名无法进行验证
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/7910727.html
Copyright © 2011-2022 走看看