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)的特性总结相关推荐

  1. 中值滤波器(Median filter)特性及其实现

    中值滤波器(Median filter)特性及其实现 信号处理时经常要做的一件事就是滤波,其中线性滤波器比如FIR.IIR 等类型都是研究的比较透彻的,实际使用中也有很好的效果.但是有时我们遇到的信号 ...

  2. 浅谈RxJava与2.0的新特性

    简介 说起 RxJava ,相信诸多 Android 开发者都不会陌生.作为一个知名的响应式编程库,从前年开始逐渐变得火热,从小众到被众多 Android 开发者们广泛引入与流传,其在 GitHub ...

  3. 【Android】带可输入功能的下拉框EditSpinner,附带Filter功能

    功能实现,分为前期准备+使用. 1.前期准备 在model下建立一个spinner包文件夹,在这个文件夹中添加4个java文件: 1.BaseEditSpinnerAdapter.java impor ...

  4. 八个层面比较 Java 8, RxJava, Reactor

    前言 这是一篇译文,原文出处(http://alexsderkach.io/comparing-java-8-rxjava-reactor/).其实很久以前我就看完了这篇文章,只不过个人对响应式编程研 ...

  5. 在Android中运用RxJava

    1.RxJava 2.0 1.1.什么是RxJava和响应式编程(reactive programming) 在响应编程中,消费者对数据进行反应,这就是为什么异步编程也被称为响应式编程的原因. 响应式 ...

  6. Rxjava四步走到高级掌握

    全文分4章全面的介绍RxJava,希望我整理的转载内容你可以获得相应的知识,方便日后工作和学习. 转载:http://blog.csdn.net/lzyzsd/article/details/4183 ...

  7. Asp.Net MVC3 简单入门详解过滤器Filter

    为什么80%的码农都做不了架构师?>>>    前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发 ...

  8. zuul filter

    前言 过滤器是Zuul的核心组件,这篇文章我们来详细讨论Zuul的过滤器.下面话不多说,来看看详细的介绍吧. 过滤器类型与请求生命周期 Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标 ...

  9. spring cloud-zuul的Filter详解

    博客原文:http://blog.csdn.net/liuchuanhong1/article/details/62236793 在前面我们使用zuul搭建了网关http://blog.csdn.ne ...

最新文章

  1. 从空间数据库中删除所有拓扑对象
  2. 名词解释_写字楼租赁相关名词解释
  3. php5.3连接sqlserver2005
  4. 最小硬盘实现单原子信息存储 超现有硬盘500倍
  5. 研发阶段模拟接口数据
  6. CCIE-LAB-第十五篇-IPV6-BGP+VPN6+RT
  7. golang 数组、指针数组、数组指针使用总结
  8. php(2)—基础补充
  9. feign直接走熔断_SpringCloud基于OpenFeign实现服务熔断降级
  10. 如何衡量多元线性回归模型优劣
  11. STM32——蜂鸣器示例代码
  12. 知识图谱实现公安情报分析(人工智能系列)
  13. 【计算机网络】IP地址
  14. 白嫖!白嫖!【尚学堂】高淇Java300集全套学习资料!
  15. 【96】太空射击游戏_笔记
  16. 影视双端360版2.0带三级分销
  17. veux--页面刷新更新后数据状态无法保存问题
  18. JavaScript的佛祖保佑
  19. VCC、VDD、VSS的区别
  20. 郑州分销系统开发|如何实现快速分销裂变?

热门文章

  1. tensorflow 安装_安装tensorflow-gpu 2.0
  2. 21天Jenkins打卡Day9-保留构建
  3. 如何判别你的领导是否值得跟随?这几点帮你快速看清
  4. 干货| 一文读懂,软件测试必会的方法和技术知识点!
  5. 学完这篇Charles抓包教程,我直接把fiddler卸载了
  6. go 遍历二维数组json_for-range造就循环永动机?快来看看go中for-range的那些事!
  7. kafka sasl java_kafka 添加SASL鉴权
  8. 单结晶体管的导电特性_二极管的导电特性
  9. 蜘蛛搜索引擎_「SEO工具」如何利用爱站工具去分析各搜索引擎蜘蛛情况?
  10. 计算机维修和维护实训报告,计算机维护与维修实训报告书.docx