rxjava2代码实战2--zip操作符
2017-12-04 23:00
316 查看
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的简单实用啦
相关文章推荐
- rxjava2代码实战1--Map操作符
- rxjava2代码实战4--interval,take操作符clipdrawable制作图片进度条
- rxjava2代码实战3--flatMap,concatMap操作符
- 02_RxJava转换操作符代码示例
- Linq 之 Zip 方法实战(代码)练习
- 小白学习Rxjava2,从零开始到实战(三) 操作符
- RxJava与网络相关的操作符(range/defer/retry/repeat/timer/delay/interval/BehaviorSubject/zip)
- RxJava zip操作符在Android中的实际使用场景
- RxJava(九)zip操作符在Android中的实际使用场景
- RxJava zip操作符在Android中的实际使用场景
- Android函数响应式编程——必学的RxJava组合操作符startWith、merge、concat、zip、combineLastest
- 【Android实战】基于RxJava和Retrofit的登录注册(包含客户端和服务器端代码)
- RxJava实战演示1------基本代码使用
- RxJava实战:变换操作符map的使用姿势及技巧
- Rxjava操作符zip
- rxjava2代码实战5--distinct,filter,buffer
- [置顶] android RxJava2使用 操作符代码总结整理
- (四)RxJava操作符:zip数据合并操作
- 小白学习Rxjava2,从零开始到实战(三) 操作符
- RxJava zip操作符在Android中的实际使用场景