博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RXJAVA之Subject
阅读量:5173 次
发布时间:2019-06-13

本文共 1524 字,大约阅读时间需要 5 分钟。

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

AsyncSubject

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

BehaviorSubject

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

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

PublishSubject

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

PublishSubject
subject = PublishSubject.create(); subject.onNext(1); subject.subscribe(new Consumer
(){ @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
subject = ReplaySubject.create(); subject.onNext(1); subject.subscribe(new Consumer
(){ @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.

 

转载于:https://www.cnblogs.com/zhangwanhua/p/7910727.html

你可能感兴趣的文章
读邹欣《师生关系》文章有感
查看>>
haslayout
查看>>
C#中的枚举类型(enum type)
查看>>
C# 除法的细节
查看>>
C#显示及隐藏任务栏
查看>>
CentOS7 设置局域网固定IP
查看>>
windows相关cmd命令
查看>>
后短信集成时代
查看>>
javascript有用小功能总结(未完待续)
查看>>
docker中使用mysql数据库详解(在局域网访问)
查看>>
java定时器demo
查看>>
pipeline常用插件用法
查看>>
JS实现密码加密
查看>>
卓越年华家具有限公司介绍
查看>>
2016-03-30
查看>>
Python的语言类型
查看>>
l-oc-9
查看>>
angular.js (五)
查看>>
【转】网络制图法(Internet Cartography)
查看>>
Oracle网络TNS协议的几个基础类描述(revised)
查看>>