前言
在上节中,我们学习了RxJava2
中SubscribeOn
和ObserveOn
的使用,大家感兴趣的话,可以查看以下文章Rxjava2 — SubscribeOn和ObserveOn 详解
那么,今天让我们来学习下RxJava2
的另外几个常见操作符map
,flatMap
和concatMap
的使用。
今天涉及内容:
- Rxjava2 依赖
- map 的使用
- flatMap 的使用
- concatMap 的使用
- map,flatMap 和 concatMap区别
一. Rxjava2 依赖
首先我们需要在app_module
对应的build.gradle
中添加如下依赖:
dependencies {
implementation "io.reactivex.rxjava2:rxandroid:2.0.1"
}
二. map 的使用
经map操作过的数据,可以进行不同数据类型的转换,非常像一个适配器,那么下面就让我们看看map
使用的示例吧:
Observable.just(1)
.subscribeOn(Schedulers.io()) //试图切换io线程
.map(new Function<Integer, String>() {
@Override
public String apply(Integer integer) throws Exception {
return "第一个";
}
})
.observeOn(AndroidSchedulers.mainThread()) //切换主线程
.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
LogUtil.i("======接收结果====s="+s);
}
});
打印结果如下:
======接收结果====s=第一个
这里直接就是将开始输入的int
类型的数据1
,经过map
的系列操作,最后变成字符串 第一个
输出,实现了数据转换功能。
需要注意的是,Function<T, R>
操作符中,T
表示输入数据类型,而R
表示输出数据类型。
三. flatMap 的使用
flatMap
主要用于处理多个事件嵌套执行的情况,比如说,用户在发送登录成功后,立马要获取打印数据信息,则此时包含两个通讯:
- 登录通讯
- 获取打印信息通讯
且他们之间的关系是,登录成功后再去获取打印信息。则flatMap
使用示例代码如下:
网友评论