gpt4 book ai didi

android - Retrofit + RxJava 链接多个请求并聚合结果

转载 作者:行者123 更新时间:2023-11-30 01:24:50 24 4
gpt4 key购买 nike

我正在寻找如何将具有不同参数的多个但相同的 API 请求链接起来的方法。到目前为止,我的方法是这样的:

@Override
public Observable<List<Entity>> getResult(Integer from, Integer to, Integer limit) {
MyService myService = restClient.getMyService();
if (null != from && null != to) {
Observable<List<Response>> responseObservable = myService.get(from, limit);
for (int i = from + 1; i <= to; i++) {
responseObservable = Observable.concat(responseObservable, myService.get(i, limit));
}

return responseObservable.map(mapResponseToEntity);
} else {
int fromParameter = null == from ? DEFAULT_FROM : from;
return myService.get(fromParameter, limit).map(mapResponseToEntity);
}
}

我期望 concat 方法将 Oservables 数据组合成一个流并返回组合的 Observable,但我只得到最后一个调用结果。但是,在 logcat 中,我可以看到调用 API 的次数正确。

最佳答案

尝试使用 Observable.merge()Observable.toList() 如下:

List<Observable<Response>> observables = new ArrayList();

// add observables to the list here...

Subscription subscription = Observable.merge(observables)
.toList()
.single()
.subscribe(...); // subscribe to List<Response>

关于android - Retrofit + RxJava 链接多个请求并聚合结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com