【发布时间】:2018-05-16 16:20:01
【问题描述】:
我有这两个服务:
private Observable<UMapsResponse> requestToServiceGetMaps(int idVenue, String accessToken) {
return mService.getUMaps(idVenue, accessToken);
}
private Observable<UMap> requestToServiceGetMapImageUrl(int idVenue, int idMap, String accessToken) {
return mService.getUMap(idVenue, idMap, accessToken);
}
所以我像这样结合了我的两个服务:
requestToServiceGetMaps(idVenue, accessToken)
.flatMap(uMapsResponse -> Observable.just(uMapsResponse.getIndoorMaps()))
.flatMapIterable(indoorMap -> indoorMap)
.flatMap(
indoorMap -> requestToServiceGetMapImageUrl(idVenue, indoorMap.getId(), accessToken),
(indoorMap, uMap) -> Log.i(TAG, "MapsItem: " + new MapsItem(indoorMap, uMap))
).toList()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<List<Integer>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(List<Integer> integers) {
}
@Override
public void onError(Throwable e) {
}
});
所以我有两个问题:
- 为什么我在 onSuccess 方法中有整数列表?
- 如何获取 MapsItem 列表(indoorMap、uMap)?
【问题讨论】:
-
#1 很简单,你会得到一个整数列表,因为你的流中的最后一个操作是
toList()。 -
是的,我知道为什么 Integer 列表而不是 MapsItem 列表??
标签: java android retrofit2 rx-java2