我有一个RetroFit服务调用,它将响应作为Observable
返回。在响应中,有一个项目列表,我使用flatMap
进行其他服务调用以向响应中添加一些数据。我是最终返回的Observable
是使用更新列表发出原始邮件的那个。在zip
运算符之后,我留下Observable<BrowseResult>
,但我需要将原始响应结合起来,以便我有一个Observable<BrowseRespose>
。我查看了collect
和concat
运算符,但无法弄清楚如何将其应用于我的问题。有关运营商使用的任何建议吗?
protected Observable<BrowseResponse> buildUseCaseObservable() {
BrowseQuery.Builder builder = new BrowseQuery.Builder()
.start(mStartIndex);
return mBrowseApi.getMultimedia(builder.build())
.flatMap(response -> Observable.from(
response.getResultsWrapper().getResult()))
.flatMap(result -> {
Observable<MultimediaObject> imageObjectObservable =
mMultimediaApi.getImageByEntitlement(result.getEid(), true);
Observable<BrowseResult> browseResultObservable = Observable.just(result);
return Observable.zip(browseResultObservable, imageObjectObservable,
(browseResult, imageObject) -> {
result.setImageUrl(imageObject.getAuthenticatedStoreUrl());
return result;
}
);
});
}