RxJava提出了2个相关的改装请求

时间:2017-03-26 18:12:45

标签: android retrofit rx-java foursquare rx-java2

我使用foursquare API检索附近场地的照片并显示它们。 我是通过RxJava和Retrofit来做的。 我第一次需要请求具有适当ID的场地列表,第二次请求应该使用id作为参数来检索每个场所的照片。 我想用单个RxJava调用来做所有事情,因为这是最好的做法,不是吗? 下面是我的代码,不幸的是,当我应该做第二个请求时,我卡在了这个地方。任何提示我应该如何解决?

        Observable<VenuesResponse> observable = mApiService.getVenues();

    observable
            .map(new Function<VenuesResponse, List<VenuesItem>>() {
                @Override
                public List<VenuesItem> apply(VenuesResponse venuesResponse) throws Exception {
                    return venuesResponse.getResponse().getVenues();
                }
            })
            .flatMap(new Function<List<VenuesItem>, ObservableSource<VenuesItem>>() {
                @Override
                public ObservableSource<VenuesItem> apply(List<VenuesItem> venuesItems) throws Exception {
                    return Observable.fromIterable(venuesItems);
                }
            })

            //TODO code that requests for photo and adds url to VenuesItem

            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe();
}

0 个答案:

没有答案