RxAndroid:合并多个来电

时间:2016-02-10 21:17:56

标签: android rx-android

我开始使用RxAndroid在Rx上开始,并希望通过它的Retrofit API列出图像。

改造界面:

public interface ImageApi {

    @GET("image")
    Observable<ImageDto> getImage(@Query("id") final Integer id);
}

我在这里得到一个对象:

public void getImage(final Integer id, final Observer<ImageDto> observer) {
    imageApi.getImage(id)
            .subscribeOn(Schedulers.newThread())
            .subscribe(observer);
}

获取列表图像的方法比我想象的要复杂得多。在那种情况下得到List有一个元素:

public void getImages(final List<Integer> ids, final Observer<List<ImageDto>> observer) {
    Observable.from(ids).flatMap(new Func1<Integer, Observable<ImageDto>>() {
        @Override
        public Observable<ImageDto> call(Integer id) {
            return imageApi.getImage(id);
        }
}).toList().subscribeOn(Schedulers.newThread()).subscribe(observer);

明白我应该使用:

Observable.zip

但我不知道如何。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

代码是正确的。我犯了一个错误,在列表中只有一个id。 解决。