Rxjava flatmap操作符,登录-获取用户信息一步到位

工程需要依赖的包
compile 'com.jakewharton.rxbinding:rxbinding:0.4.0'
compile 'io.reactivex:rxjava:1.2.7'
compile 'io.reactivex:rxandroid:1.2.1'
代码
private class LoginInfo {
    private String token;
}

private class UserInfo {
    private String userInfoJson;
}


Observable.just(1).flatMap(new Func1<Integer, Observable<LoginInfo>>() {
      @Override
      public Observable<LoginInfo> call(Integer integer) {
           // 从网络获取数据
           LoginInfo loginInfo = new LoginInfo();
           return Observable.just(loginInfo);
       }
   }).flatMap(new Func1<LoginInfo, Observable<UserInfo>>() {
       @Override
       public Observable<UserInfo> call(LoginInfo loginInfo) {
           // 从网络获取用户信息,带入token 啥的。。
           UserInfo userInfo = new UserInfo();
           return Observable.just(userInfo);
       }
   }).observeOn(AndroidSchedulers.mainThread()) // 线程切换
           .subscribeOn(Schedulers.io())
           .subscribe(new Subscriber<UserInfo>() {
       @Override
       public void onCompleted() {
       }

       @Override
       public void onError(Throwable e) {
       }
       @Override
       public void onNext(UserInfo o) {
           // 从网络获取到用户数据,本地保存,然后 do something
       }
   });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,057评论 25 708
  • 转载注明出处:http://www.jianshu.com/p/5255b100930e 0. 前言 完全由个人翻...
    王三的猫阿德阅读 2,554评论 0 4
  • 狼行千里吃肉,马行千里吃草。活鱼逆流而上,死鱼随波逐流。
    妮小乐阅读 316评论 0 1
  • 遗憾如影随形,岁月流转,遗憾仍紧跟身后。 遗憾是什么?遗憾是很想念离世的亲人,却再也看不到她们了。还记...
    罗若阅读 171评论 0 1
  • 大哥大姐,我想对你们说,你们是神安排到我们身边的天使,总是在我们需要的时候帮助我们,想着我们,我和海鸥感谢你们,想...
    恩宠爸爸阅读 137评论 0 0