Rxjava操作符飙车系列(五)登录后获取用去信息

很多人在讲Rxjava的时候都会用到登录,确实这个场景很适合。

哈哈,接下来就和大家讲讲操作符的具体应用。

flatmap操作符。

狗子,上图:

Rxjava操作符飙车系列(五)登录后获取用去信息_第1张图片
flatmap

将一个发射数据的Observable 变换为多个Observables,然后将它们发射的数据合并后放进一个单独的Observable里。

上正文:

 ApiService.register(new RegisterRequest())            //发起注册请求
            .subscribeOn(Schedulers.io())               //在IO线程进行网络请求
            .observeOn(AndroidSchedulers.mainThread())  //回到主线程去处理请求注册结果
            .doOnNext(new Consumer() {
                @Override
                public void accept(ResultBean resultBean) throws Exception {
                    //先根据注册的响应结果去做一些操作
                }
            })
            .observeOn(Schedulers.io())
            .flatMap(new Function>() {

                @Override
                public ObservableSource apply(UserParam param) throws Exception {

                    BaseBean result=null;//调用网络 ,获取用户信息

                    return Observable.just(result);
                }
            }).flatMap(new Function>() {

        @Override
        public ObservableSource apply(BaseBean baseBean) throws Exception {
            UserBean user=null;//调用网络

            return Observable.just(user);  //获取用户头像等
        }
    }).subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer() {
                @Override
                public void accept(UserBean userBean) throws Exception {
                    Toast.makeText(LoginRxActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                    textview.setText(userBean.getName() + userBean.getAge());
                }
            }, new Consumer() {
                @Override
                public void accept(Throwable throwable) throws Exception {
                    Toast.makeText(LoginRxActivity.this, "登录失败", Toast.LENGTH_SHORT).show();

                }
            });

你可能感兴趣的:(Rxjava操作符飙车系列(五)登录后获取用去信息)