【发布时间】:2016-11-12 00:47:07
【问题描述】:
我正在尝试获取 google places,根据 api 限制,每个请求不能获得超过 20 个位置,并且下一个请求需要上一个请求的 nextPageToken。
问题:
Zip操作员立即执行所有请求,但我需要它们在每个Observable调用之间按顺序和及时延迟4 secondsDelay运算符允许等待,但实际上它会立即执行Zip调用并在给定的延迟时间后返回结果,这是不希望的。
我的来源:
LatLng some = new LatLng(31.471199, 74.234940);
Observable
.zip(getNearByPlaces(some), getNearByPlaces(some), getNearByPlaces(some), new Func3<List<PlaceInfo>, List<PlaceInfo>, List<PlaceInfo>, List<PlaceInfo>>() {
@Override
public List<PlaceInfo> call(List<PlaceInfo> placeInfos, List<PlaceInfo> placeInfos2, List<PlaceInfo> placeInfos3) {
placeInfos2.addAll(placeInfos3);
placeInfos.addAll(placeInfos2);
return placeInfos;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<PlaceInfo>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(List<PlaceInfo> placeInfos) {
adapter.setPlaces(placeInfos);
}
});
我是初学者,大约 1 周前开始使用 rxjava,所以你可以预料到错误。
【问题讨论】:
标签: android google-maps google-places-api rx-java rx-android