RxJava然后 - 当时

时间:2016-12-02 14:51:25

标签: android rx-java rx-android

我正在尝试在我的Android应用中将RxJava与Retrofit结合使用。

我来到了一个需要从某个模型类中检索(GET)url的点,如果它不可用,请POST到另一个端点生成它,然后再次使用GET检索它。

这个想法是最终结果总是一个url(当然,如果没有错误),所以如果它不在那里,我们创建它然后检索它。

我可以通过嵌套调用来使用RxJava执行此操作,但这似乎并没有"反应性",所以我想也许那时的时间听起来像我正在寻找的?我试着寻找例子,但这三个词很难搜索,因为它们很常见。

是否可以结合使用observable来实现我所描述的目标?

2 个答案:

答案 0 :(得分:0)

我希望这对你有用。

https://github.com/darylteo/rxjava-promises/tree/master/rxjava-promises

如果您需要用于改装+ rx使用的代码示例,可以点击此链接。

http://randomdotnext.com/retrofit-rxjava/

答案 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中收到的异常类型。