rxjava 链式调度

Rxjava 真是的是好东西 随手记录下用过的链式调度 方便使用的时候直接修改


Observable.create(new ObservableOnSubscribe<String>() {
        @Override
        public void subscribe(ObservableEmitter<String> e) throws Exception {
                e.onNext(login());

                Log.e(TAG, "subscribe login:" + Thread.currentThread().getName());
        }
}).map(new Function<String, String>() {

        @Override
        public String apply(String s) throws Exception {
                Log.e(TAG, "194 apply:" + Thread.currentThread().getName());
                return "apply";
        }
}).map(new Function<String, String>() {

        @Override
        public String apply(String s) throws Exception {
                Log.e(TAG, "194 apply:" + Thread.currentThread().getName());
                return "apply";
        }
}).doOnNext(new Consumer<String>() {    //保存登录结果UserInfo
        @Override
        public void accept(@NonNull String bean) throws Exception {

                Log.e(TAG, "1doOnNext:accept" + Thread.currentThread().getName());
                saveUserInfo(bean);
        }


})
        .subscribeOn(Schedulers.io())   //调度线程
        .observeOn(AndroidSchedulers.mainThread())  //调度线程
        .subscribe(new Consumer<String>() {
                @Override
                public void accept(@NonNull String bean) throws Exception {
                        //整个请求成功,根据获取的UserInfo更新对应的View
                        showSuccessView(bean);
                        Log.e(TAG, "Consumer:accept" + Thread.currentThread().getName());
                }


        }, new Consumer<Throwable>() {
                @Override
                public void accept(@NonNull Throwable throwable) throws Exception {
                        //请求失败,显示对应的View
                        Log.e(TAG, "222 Consumer:" + Thread.currentThread().getName());
                        showFailView();
                }


        });


猜你喜欢

转载自blog.csdn.net/renfujiang/article/details/79495382
今日推荐