RxJava--takeWhile,takeUntil,(附带filter)的特性总结
filter
过滤不满足条件的事件,例如以下代码,只会输出值为6的事件 |
PublishSubject<String> subject = PublishSubject.create();Disposable disposable = subject.compose(new ObservableTransformer<String, String>() {@Overridepublic ObservableSource<String> apply(Observable<String> upstream) {//替换部分return upstream.filter(new Predicate<String>() {@Overridepublic boolean test(String s) throws Exception {LogUtils.e("ObservableTransformer==" + s);return Integer.valueOf(s) == 6;}});//替换部分}}).subscribe(new Consumer<String>() {@Overridepublic void accept(String s) throws Exception {LogUtils.e("disposable1==" + s);}});subject.onNext("1");subject.onNext("2");subject.onNext("3");subject.onNext("4");subject.onNext("5");subject.onNext("6");subject.onNext("7");subject.onNext("8");subject.onNext("9");subject.onNext("10");subject.onComplete();复制代码
takeUntil
先发送事件,再判断是否符合条件,当符合条件的时候,终止。如下代码。会输出事件 1,2,3,4,5,6 |
//替换第一部分代码return upstream.takeUntil(new Predicate<String>() {@Overridepublic boolean test(String s) throws Exception {LogUtils.e("ObservableTransformer==" + s);return Integer.valueOf(s) == 6;}});
复制代码
takeWhile
先判断是否符合条件,再发送事件。当不符合条件的时候,直接终止。如下代码。。 |
//替换第一部分代码return upstream.takeWhile(new Predicate<String>() {@Overridepublic boolean test(String s) throws Exception {LogUtils.e("ObservableTransformer==" + s);return Integer.valueOf(s) == 6;}});复制代码
什么也不会输出。因为当事件1来临时,不等于6,直接终止 |
若替换代码 |
return Integer.valueOf(s) != 6;
复制代码
则会输出事件1,2,3,4,5,事件6不符合条件,终止。 |
RxJava--takeWhile,takeUntil,(附带filter)的特性总结相关推荐
- 中值滤波器(Median filter)特性及其实现
中值滤波器(Median filter)特性及其实现 信号处理时经常要做的一件事就是滤波,其中线性滤波器比如FIR.IIR 等类型都是研究的比较透彻的,实际使用中也有很好的效果.但是有时我们遇到的信号 ...
- 浅谈RxJava与2.0的新特性
简介 说起 RxJava ,相信诸多 Android 开发者都不会陌生.作为一个知名的响应式编程库,从前年开始逐渐变得火热,从小众到被众多 Android 开发者们广泛引入与流传,其在 GitHub ...
- 【Android】带可输入功能的下拉框EditSpinner,附带Filter功能
功能实现,分为前期准备+使用. 1.前期准备 在model下建立一个spinner包文件夹,在这个文件夹中添加4个java文件: 1.BaseEditSpinnerAdapter.java impor ...
- 八个层面比较 Java 8, RxJava, Reactor
前言 这是一篇译文,原文出处(http://alexsderkach.io/comparing-java-8-rxjava-reactor/).其实很久以前我就看完了这篇文章,只不过个人对响应式编程研 ...
- 在Android中运用RxJava
1.RxJava 2.0 1.1.什么是RxJava和响应式编程(reactive programming) 在响应编程中,消费者对数据进行反应,这就是为什么异步编程也被称为响应式编程的原因. 响应式 ...
- Rxjava四步走到高级掌握
全文分4章全面的介绍RxJava,希望我整理的转载内容你可以获得相应的知识,方便日后工作和学习. 转载:http://blog.csdn.net/lzyzsd/article/details/4183 ...
- Asp.Net MVC3 简单入门详解过滤器Filter
为什么80%的码农都做不了架构师?>>> 前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发 ...
- zuul filter
前言 过滤器是Zuul的核心组件,这篇文章我们来详细讨论Zuul的过滤器.下面话不多说,来看看详细的介绍吧. 过滤器类型与请求生命周期 Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标 ...
- spring cloud-zuul的Filter详解
博客原文:http://blog.csdn.net/liuchuanhong1/article/details/62236793 在前面我们使用zuul搭建了网关http://blog.csdn.ne ...
最新文章
- 从空间数据库中删除所有拓扑对象
- 名词解释_写字楼租赁相关名词解释
- php5.3连接sqlserver2005
- 最小硬盘实现单原子信息存储 超现有硬盘500倍
- 研发阶段模拟接口数据
- CCIE-LAB-第十五篇-IPV6-BGP+VPN6+RT
- golang 数组、指针数组、数组指针使用总结
- php(2)—基础补充
- feign直接走熔断_SpringCloud基于OpenFeign实现服务熔断降级
- 如何衡量多元线性回归模型优劣
- STM32——蜂鸣器示例代码
- 知识图谱实现公安情报分析(人工智能系列)
- 【计算机网络】IP地址
- 白嫖!白嫖!【尚学堂】高淇Java300集全套学习资料!
- 【96】太空射击游戏_笔记
- 影视双端360版2.0带三级分销
- veux--页面刷新更新后数据状态无法保存问题
- JavaScript的佛祖保佑
- VCC、VDD、VSS的区别
- 郑州分销系统开发|如何实现快速分销裂变?
热门文章
- tensorflow 安装_安装tensorflow-gpu 2.0
- 21天Jenkins打卡Day9-保留构建
- 如何判别你的领导是否值得跟随?这几点帮你快速看清
- 干货| 一文读懂,软件测试必会的方法和技术知识点!
- 学完这篇Charles抓包教程,我直接把fiddler卸载了
- go 遍历二维数组json_for-range造就循环永动机?快来看看go中for-range的那些事!
- kafka sasl java_kafka 添加SASL鉴权
- 单结晶体管的导电特性_二极管的导电特性
- 蜘蛛搜索引擎_「SEO工具」如何利用爱站工具去分析各搜索引擎蜘蛛情况?
- 计算机维修和维护实训报告,计算机维护与维修实训报告书.docx