栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用RxJava和Retrofit进行N次连续的api调用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用RxJava和Retrofit进行N次连续的api调用

天真地,我会这样做(但是,它不起作用,请参见下文):

return Observable.from(files).concatMap(file -> retrofitApi.upload(uploadModel));

现在的问题是,没有办法告诉改造只使用一个线程进行这些调用。

reduce
但是,会将一个函数调用的结果与原始可观察到的下一个发射值一起传递给下一个。那可以工作,但是传递给函数
reduce
必须是同步的。不好。

另一种方法是递归地修改可观察对象:

void getNextFile(int i) {    return retrofit.upload(i).        onNext(result -> getNextFile(i + 1));}

大致。但是我不确定如何清理它以使其更具可读性。

我认为最干净的是:

Observable.from(files).map(file -> retrofitApi.uploadSynchronously(new UploadModel(file)));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号