美文网首页Android Other
Retrofit +Rxjava 操作符之多个请求合并为一个请求

Retrofit +Rxjava 操作符之多个请求合并为一个请求

作者: 黑白岩 | 来源:发表于2018-11-27 13:25 被阅读0次

App的首页一般都比较复杂,好多公司传递数据都是3-4个接口将数据传递回来,这是我们可能就需要使用的多个请求合并成一个请求。最后再去更UI 。在这里就需要用到Rxjava的操作符merge
具体如下:

  showLoading();
  Observable<TimerBean> time = RetrofitClient.getHomeApi().getTime("getServerTime");
  Observable<GoodsDetailBean> goodsDetail = RetrofitClient.getHomeApi().getGoodsDetail( products_id);
  Observable.merge(time,goodsDetail)    // 这里将 要请求的接口信息 放进来  可以放多个
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())    //observeOn 使其在UI线程
                .subscribe(new Subscriber<Object>() {
                    @Override
                    public void onCompleted() {
                        dismissLoading();
                    }

                    @Override
                    public void onError(Throwable e) {
                        dismissLoading();

                    }

                    @Override
                    public void onNext(Object obj) {
                        if (obj instanceof  TimerBean){
                             TimerBean time = (TimerBean)obj;
                        // 获取到一个请求的数据
                   }else if (obj instanceof GoodsDetailBean){
                            GoodsDetailBean goodsDetailBean = (GoodsDetailBean)obj;
                            // 获取到第二个请求的数据
                        }
                    }

              // 最后更新UI
                });

相关文章

网友评论

    本文标题:Retrofit +Rxjava 操作符之多个请求合并为一个请求

    本文链接:https://www.haomeiwen.com/subject/ojdgqqtx.html