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

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

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

flatmap操作符。

狗子,上图:

flatmap

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

上正文:

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

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

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

                    return Observable.just(result);
                }
            }).flatMap(new Function<BaseBean, ObservableSource<UserBean>>() {

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

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

                }
            });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本篇文章介主要绍RxJava中操作符是以函数作为基本单位,与响应式编程作为结合使用的,对什么是操作、操作符都有哪些...
    嘎啦果安卓兽阅读 2,890评论 0 10
  • RxJava正在Android开发者中变的越来越流行。唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编...
    刘启敏阅读 1,925评论 1 7
  • 作者: maplejaw本篇只解析标准包中的操作符。对于扩展包,由于使用率较低,如有需求,请读者自行查阅文档。 创...
    maplejaw_阅读 45,822评论 8 93
  • 创建操作 用于创建Observable的操作符Create通过调用观察者的方法从头创建一个ObservableEm...
    rkua阅读 1,867评论 0 1
  • 注:只包含标准包中的操作符,用于个人学习及备忘参考博客:http://blog.csdn.net/maplejaw...
    小白要超神阅读 2,230评论 2 8