深入浅出RxJava—操作符
来源:互联网 发布:纯阳谢云流捏脸数据 编辑:程序博客网 时间:2024/04/30 09:11
原文链接
参考文章
本篇文章将重点介绍RxJava中的操作符,RxJava的强大性就来于它所定义的操作符。
假如我们现在有这样一个接口,返回一个网站地址list集合,并将集合数据进行打印,基于上一篇文章,我们可能写出这样的代码:
先贴出query方法代码:
查询将输入地址:
这段代码使我们丢失了变换数据流的能力,一但要更改数据只能在subscribe 总进行,那你会说可以使用map操作符:
这样的代码依旧要使用集合遍历的方式才能获取到每一个元素。幸运的是RxJava提供了另外一个方法from,它接受一个集合作为输入,然后每次输出一个元素给subscriber。
这样虽然去掉了遍历循环,但是代码看起来依然很凌乱,多个嵌套的subscription看起来很臃肿且不好维护。
救星来了,它就是flatMap,Observable.flatMap()接受一个Observable 为输入参数,同时输出另外一个Observable,直接上代码:
理解flatMap的关键点在于,flatMap输出的Observable的泛型类型正是我们在subscriber 想要接受的。
继续,我们我们根据query查询的网址打印出其对应的title,要怎么做呢?先上getTilte(String title)的代码:
上代码:
我们可以一直使用flatMap操作符来变换数据直到是subscriber想要的数据类型为止。在测试代码中有些返回的数据是null ,那我们怎么过滤这些数据呢?另一个操作符闪亮登场,它就是filter,
filter()输出和输入相同的元素,并且会过滤掉那些不满足检查条件的。这样,就将title为null的值给过滤掉了。现在输出的是4个结果了,那如果我们只想要前两个结果怎么办呢? 这就引入了另外一个操作符了,take,上代码:
take()输出最多指定数量的结果。另外,我们我们在最终输出结果之前还想对数据做一些操作,别如将title保存起来,这就要使用另一个操作符了,doOnNext:
doOnNext()允许我们在每次输出一个元素之前做一些额外的事情,比如这里的保存标题。
本篇主要讲了这么几个操作符,RxJava提供的操作符实在是很强大的,还可以自定义操作符。将一系列的操作符链接起来就可以完成复杂的逻辑。代码被分解成一系列可以组合的片段。这就是响应式函数编程的魅力。用的越多,就会越多的改变你的编程思维。
阅读全文
0 0
- 深入浅出RxJava—操作符
- 深入浅出RxJava—— 操作符
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava二--操作符
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(二:操作符)
- 单点登录原理与简单实现
- 线程基础点(小白可以看看)
- tomcat如何改端口号?解决端口号被占用的问题
- 快速入门shell脚本编写(三)
- Mac全选,剪切和复制粘贴
- 深入浅出RxJava—操作符
- Java 8 函数式接口Functional Interface
- Tomcat部署HTTPS协议
- 安卓6.0以及7.0新特征
- 神经网络中一些基础概念
- 编程范式3 笔记 struct 内存模型
- Android开发,自定义View(四)-----视频音量调控
- PHP+AJAX实现表格实时编辑(慕课网PHP课程)
- Quartz定时器的时间设置