RxJava的操作符
2016-05-20 19:00
323 查看
RxJava最核心的两个东西是Observerables(被观察者,事件源)和Subscribers(观察者)。Observable发出一系列
事件,Subscribeers处理这些事件。这里的事件可以是触摸事件,web接口调用返回的数据。
一个Observable可以发出零个或多个事件,知道结束或者出错。每发出一个事件,就会调用它的Subscribe的
onNext方法,最后调用Subscriber.onNext()或者Subscriber.onError()结束。
RxJava很像设计模式中的观察者设计模式,但是有一点明显不同,那就是如果一个Onserable没有任何的
Subscriber,那么这个Observerable是不会发出任何事件的。
1.Observable和Subscribe可以做任何事情
Observable可以是数据库查询,Subscriber用来显示查询结果;Observable可以是屏幕上的点击事件,
Subscriber用啦响应点击事件;Observable可以是一个网络请求,Subcribler来显示请求结果。
2.Observable和Subscribler是独立于中间的变换过程的。
在Obseravable和Subscriber中间可以增减任何数量的map。整个系统是高度可组合的,操作数据是一个很简单的
过程。
RxJava中的操作符:
操作符是为了解决对Observable对象的变换问题,操作符用于在Observable和最终的Subscribe之间修改
Observable发出的事件。
map()操作符就是用于变换Observable对象的,map操作符返回一个Observable对象,这样就是实现链式调用,在
一个Observable对象上多次使用map操作符,最终将简洁的数据传递给Subscribe对象。
特性:
1,不必返回Observable对象返回的类型,可以使用吗,map操作符返回一个发出新的数据类型的Observable对象
2.可以对一个Observable多次使用map。
from()接收一个集合为输入,然后每次输出一个元素给subscriber.
1.from(Iterable<? extends T> iterable)
2.from(T[] array)
flatMap()接收一个Observable的输出作为输入,同时输出另外一个Observable。
map与flatMap的区别
map是在一个item之后被反射之后,到达map处经过转换变成另一个item,然后继续往下走;flatMap是item被饭饭
之后,到达flatMap出经过转换变成一个Observable,而这个Observable并不会直接被发射出去,而是会立即被激
活,然后把它发射出的每个item都传入流中,在继续走下去。
所以flatMap和map有两个区别:
1.经过Observable的转换,相当于重开了一个异步的流。
2.item被分散了,个数发生了变化。
更多操作符:
1.filter过滤,把不符合条件的过滤掉,留下符合条件的
2.take 指定最多输出的数量
3.doOnNext允许我们在每次输出一个元素之前做一些额外的事情(其实就是在onNext里调用的)
事件,Subscribeers处理这些事件。这里的事件可以是触摸事件,web接口调用返回的数据。
一个Observable可以发出零个或多个事件,知道结束或者出错。每发出一个事件,就会调用它的Subscribe的
onNext方法,最后调用Subscriber.onNext()或者Subscriber.onError()结束。
RxJava很像设计模式中的观察者设计模式,但是有一点明显不同,那就是如果一个Onserable没有任何的
Subscriber,那么这个Observerable是不会发出任何事件的。
1.Observable和Subscribe可以做任何事情
Observable可以是数据库查询,Subscriber用来显示查询结果;Observable可以是屏幕上的点击事件,
Subscriber用啦响应点击事件;Observable可以是一个网络请求,Subcribler来显示请求结果。
2.Observable和Subscribler是独立于中间的变换过程的。
在Obseravable和Subscriber中间可以增减任何数量的map。整个系统是高度可组合的,操作数据是一个很简单的
过程。
RxJava中的操作符:
操作符是为了解决对Observable对象的变换问题,操作符用于在Observable和最终的Subscribe之间修改
Observable发出的事件。
map()操作符就是用于变换Observable对象的,map操作符返回一个Observable对象,这样就是实现链式调用,在
一个Observable对象上多次使用map操作符,最终将简洁的数据传递给Subscribe对象。
特性:
1,不必返回Observable对象返回的类型,可以使用吗,map操作符返回一个发出新的数据类型的Observable对象
2.可以对一个Observable多次使用map。
from()接收一个集合为输入,然后每次输出一个元素给subscriber.
1.from(Iterable<? extends T> iterable)
2.from(T[] array)
flatMap()接收一个Observable的输出作为输入,同时输出另外一个Observable。
map与flatMap的区别
map是在一个item之后被反射之后,到达map处经过转换变成另一个item,然后继续往下走;flatMap是item被饭饭
之后,到达flatMap出经过转换变成一个Observable,而这个Observable并不会直接被发射出去,而是会立即被激
活,然后把它发射出的每个item都传入流中,在继续走下去。
所以flatMap和map有两个区别:
1.经过Observable的转换,相当于重开了一个异步的流。
2.item被分散了,个数发生了变化。
更多操作符:
1.filter过滤,把不符合条件的过滤掉,留下符合条件的
2.take 指定最多输出的数量
3.doOnNext允许我们在每次输出一个元素之前做一些额外的事情(其实就是在onNext里调用的)
相关文章推荐
- Eclipse下完整的Servlet实例
- 多线程递归拷贝多层目录文件
- Eclipse 4.4(luna) 安装fatjar插件时报错的问题
- Java-A+B和C (15)
- [原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法
- Java NIO6:选择器2---代码篇
- Java NIO5:选择器1---理论篇
- Java NIO4:Socket通道
- Java NIO3:通道和文件通道
- Java NIO2:缓冲区
- Java NIO1:I/O模型概述
- Java IO8:IO简单总结
- Java IO7:管道流、对象流
- java 数据库连接操作类
- Java IO5:字符流
- Java(servlet)模拟表单提交
- Eclipse在线安装fatjar插件
- Java IO4:字符编码
- Java IO3:字节流
- Java IO2:RandomAccessFile