上一篇介绍了环境搭建,并熟悉了初步的使用方式, 要再学习一些其他方法, 如
just: 获取输入数据, 直接分发, 更加简洁, 省略其他回调
from: 获取输入数组, 转变单个元素分发
map: 映射, 对输入数据进行转换, 如大写
flatMap: 增大, 本意就是增肥, 把输入数组映射多个值, 依次分发
reduce: 简化, 正好相反, 把多个数组的值, 组合成一个数据
先来看下代码:
Action1就相当于订阅者,代表最终动作, 因而不需要返回值, 并且一个参数
Func1代表使用一个参数的函数, 前面是参数, 后面是返回值,把数据进行封装处理
上面代码就是两个action,分别从toast和textview输出数据
三个func,一个是把两个字符串连接成一个字符串,一个是在字符串的后面添加内容,还有一个返回的是Observable,为了映射字符串
输入字符串, 添加内容, 输出至控件中显示
输入数组, 单独分发数组中每一个元素, 添加内容, Toast连续显示
输入数组, 映射为单独分发, 并组合到一起, 集中显示
这次使用的是简化代码,因为有时候我们对异常并不是很关心,
只要能catch异常即可, 因此流仅仅关注真正需要的部分
just可以非常简单的获取任何数据, 分发时, 选择使用的线程
map是对输入数据加工, 转换类型, 输入Func1, 对数据进行修改
from是读取数组中的值, 每次单独分发, 并分发多次, 其余类似
flatMap把数组转换为单独分发, Func1内部使用from拆分数组
reduce把单独分发数据集中到一起, 再统一分发, 使用Func2