1
我開始使用RxAndroid的Rx,並希望通過它的API與Retrofit列出圖像。RxAndroid:合併多個電話
更新接口:
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);
}
和方法來獲取列表圖像更復雜轉念一想。在這種情況下,列出了一個元素:
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
,但我不能老是如何實現。有人能幫助我嗎?
Zip更適合連續請求。它看起來像你在正確的軌道上。你可以驗證每個圖像ID調用一次嵌套的getImage調用嗎? – davehenry
你是對的,代碼是正確的。有時候因爲我的錯誤,我在列表中只有一個ID。不管怎樣,謝謝你。 有沒有辦法使嵌套呼叫更少? –