【发布时间】:2016-11-25 15:00:05
【问题描述】:
我有一个调用 getShops() 方法的演示者。
Observable<List<Shop>> observable = interactor.getData();
Subscription subscription = observable
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<Shop>>() {
@Override
public void onCompleted() {
view.hideProgress();
}
@Override
public void onError(Throwable e) {
super.onError(e);
view.hideProgress();
}
@Override
public void onNext(List<Shop> shops) {
handleShops(shops);
view.onSuccess();
}
});
composite.add(subscription);
在数据层我有交互器,它通过改造向服务器发出请求并返回List<Shop>。
@Override
public Observable<List<Shop>> getData() {
return api.getShops(pageNum).map(new Func1<ShopWrapper, List<Shop>>() {
@Override
public List<Shop> call(ShopWrapper wrapper) {
return wrapper.getShops();
}
});
}
问题是我需要用不同的页面参数发出多个相同的请求,因为服务器每页返回N个商店,我需要收集所有商店然后将Observable<List<Shop>>返回给演示者。
我是响应式编程的新手,也许有一些操作员允许这样做。
任何帮助将不胜感激。
【问题讨论】:
标签: java android retrofit rx-java rx-android