我正在尝试在我的Android应用中将RxJava与Retrofit结合使用。
我来到了一个需要从某个模型类中检索(GET)url的点,如果它不可用,请POST到另一个端点生成它,然后再次使用GET检索它。
这个想法是最终结果总是一个url(当然,如果没有错误),所以如果它不在那里,我们创建它然后检索它。
我可以通过嵌套调用来使用RxJava执行此操作,但这似乎并没有"反应性",所以我想也许那时的时间听起来像我正在寻找的?我试着寻找例子,但这三个词很难搜索,因为它们很常见。
是否可以结合使用observable来实现我所描述的目标?
答案 0 :(得分:0)
我希望这对你有用。
https://github.com/darylteo/rxjava-promises/tree/master/rxjava-promises
如果您需要用于改装+ rx使用的代码示例,可以点击此链接。
答案 1 :(得分:0)
我们假设您有以下方法:
apiManager.makeGETRequest(); //returns Url or throws an Exception
apiManager.makePOSTRequest(); //returns Url
使用方便的onErrorResumeNext
运算符:
apiManager.makeGETRequest()
.onErrorResumeNext(t -> apiManager.makePOSTRequest())
...
它拦截Exception
并将其替换为Observable
。如果makeGETRequest()
成功,则下游将忽略onErrorResumeNext
,否则将调用apiManager.makePOSTRequest()
。
P.S。不要忘记检查onErrorResumeNext
中收到的异常类型。