rxjava2代码实战2--zip操作符
来源:互联网 发布:中国国籍知乎 编辑:程序博客网 时间:2024/05/18 12:37
zip操作符
将两个或多个Observable合并为一个并将最后的结果返回
demo下载地址:
GitHub - GodisGod/Rxjava2Test
https://github.com/GodisGod/Rxjava2Test
代码实战:
网络请求1得到用户的ID
网络请求2得到用户的头像
ID和头像都得到之后返回给客户端
效果图:
这里使用了我的一个网络访问框架:请先理解这个网络访问框架再往下看哦(^__^)
retrofit2.0+okhttp3+rxjava的封装(简单好用) - CSDN博客
http://blog.csdn.net/baidu_31093133/article/details/52278249
网络访问1代码:
ZipServer1.getZipBean1(new Consumer<Zipbean1>() { @Override public void accept(Zipbean1 zipbean1) throws Exception { tvShow1.setText("网络请求1获取id: " + zipbean1.getId()); } }, new Consumer<Throwable>() { @Override public void accept(Throwable throwable) throws Exception { } }, new Action() { @Override public void run() throws Exception { } });
网络访问2代码:
ZipServer2.getZipBean2(new Consumer<Zipbean2>() { @Override public void accept(Zipbean2 zipbean2) throws Exception { tvShow2.setText("网络请求2获取avatar: " + zipbean2.getAvatar_url()); } }, new Consumer<Throwable>() { @Override public void accept(Throwable throwable) throws Exception { } }, new Action() { @Override public void run() throws Exception { } });
zip使用代码
HttpService service = HttpManager.getInstance().getHttpService(); Observable<Zipbean1> observable1 = service.getZipBean1();//创建网络访问1的observable Observable<Zipbean2> observable2 = service.getZipBean2();//创建网络访问2的observable //使用zip合并两个创建网络访问2的observable //其中网络访问1返回Zipbean1 //网络访问2返回Zipbean2 //zip返回Zipbean Observable observableZip = Observable.zip(observable1, observable2, new BiFunction<Zipbean1, Zipbean2, ZipBean>() { @Override public ZipBean apply(Zipbean1 zipbean1, Zipbean2 zipbean2) throws Exception { ZipBean zipbean = new ZipBean(); zipbean.setId(zipbean1.getId()); zipbean.setAvatar(zipbean2.getAvatar_url()); return zipbean; } }); HttpManager.getInstance().doHttpRequest(observableZip, consumer, throwableConsumer, action);
zip的方法重载有很多:可以根据实际业务使用
以上就是zip的简单实用啦
阅读全文
0 0
- rxjava2代码实战2--zip操作符
- rxjava2代码实战1--Map操作符
- rxjava2代码实战3--flatMap,concatMap操作符
- rxjava2代码实战4--interval,take操作符clipdrawable制作图片进度条
- RxJava2 / RxJava2操作符scan
- rxjava2操作符
- RxJava2操作符Map
- rxjava2代码实战5--distinct,filter,buffer
- 小白学习Rxjava2,从零开始到实战(三) 操作符
- 小白学习Rxjava2,从零开始到实战(三) 操作符
- RxJava2 / RxAndroid2操作符take
- RxJava2 / RxAndroid2操作符skip
- RxJava2.0教程操作符
- Rxjava2.0 再探---操作符
- RxJava2 / RxAndroid2操作符skip
- RxJava2 / RxAndroid2操作符skip
- RxJava2操作符之“Delay”
- Rxjava2操作符入门(一)
- vue-router踩坑之history模式的scrollBehavior
- Android Studio插件GenerateFindViewById
- 函数递归
- Disconnected: No supported authentication methods available)FileZilla通过SSH连接Linux服务器( CentOS)
- flask web 开发 MarkDown 存储,读取问题
- rxjava2代码实战2--zip操作符
- 使用spring-boot-starter-mail实现邮件发送
- C中的位级运算
- 删除公共字符
- 【Java基础】在使用@Deprecated注解时发生的对象引用变量的类型的问题
- Python中JSON的基本用法
- 1056. 组合数的和(15)
- html文件在Chrome打开中文乱码
- python flask中静态文件的管理