Retrofit2 / RxJava2,valve(),FlowableTransformers.valve不工作

时间:2017-05-17 07:50:08

标签: android retrofit2 rx-java2

我试图制作一个更短的代码,但是它似乎还不足以让它可读,所以我最终得到了以下内容:

    Flowable
            .defer (return new outer observable upon subscribing)
            .retryWhen ( -> 
                          Flowable.flatMap throwable when recieve a 400
                                   valve.onNext(false)
                                    -> Flowable.defer ( return new Network_A_Observable)
                                           .retryWhen ( ->
                                                 Flowable.flatmap throwable when receive 500)

                                                          valve.onNext(true)

                        )
            .compose(flowable valve (i intentionally put a false here))
            .subscribe(new subscriber)

这是我的long-non-lambda代码的非常短版本,它执行一系列网络调用并在某些条件下适当地重试。

我没有遇到重试并为每次重试发出新的外部可观察量的问题(因为这已在我的其他帖子中解决,但不确定它是否与我当前的问题有关),现在我注意到当我执行时比方说,2个异步网络调用,它返回两个不同的值,虽然这两个值是有效的,当然可观察的流按预期工作,这是我打算做的(当发生一些错误时重试),现在我意识到我应该" PAUSE"下一个电话流,搜索" 如何暂停一个可观察的,直到我找到 FlowableTransformer.valve(),这在RxJava2Extensions上可用,我运行了一个来自博客的代码片段暂停/继续流,但当我在上面的代码上尝试时,如果 valve 设置为 false ,则会继续完成整个流动的流。

我错过了什么吗?

非常感谢任何帮助。

0 个答案:

没有答案