我有2种api方法。
@POST("/api/photos/")
Single<List<Photo>> getPhotos();
@POST("/api/user/profile")
Single<Profile> getProfile(@Query("photoId") String photoId);
我想要返回Single&lt;列表&lt;对&lt;照片,档案&GT;&GT;&GT;在结合一些rx操作和这个api方法之后。可能吗?怎么样?
答案 0 :(得分:2)
这是我的解决方案
public class TestCombining {
public Single<List<Pair<Photo, Profile>>> test(ApiInterface apiInterface) {
return apiInterface.getPhotos()
.flattenAsObservable(photos -> photos)
.flatMap(photo -> apiInterface.getProfile(photo.getId())
.map(profile -> new Pair<>(photo, profile)).toObservable())
.toList();
}
interface ApiInterface {
Single<List<Photo>> getPhotos();
Single<Profile> getProfile(String photoId);
}
interface Profile {
String getPhotoId();
}
interface Photo {
String getId();
}
}