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

       @Override
       public void onError(Throwable e) {
       }
       @Override
       public void onNext(UserInfo o) {
           // 从网络获取到用户数据,本地保存,然后 do something
       }
   });

你可能感兴趣的:(Rxjava flatmap操作符,登录-获取用户信息一步到位)