链接Observable以避免多个订阅

时间:2017-10-08 01:06:34

标签: java android kotlin reactive-programming rx-java2

我在链接这些可观测量方面遇到了一些麻烦。我有func1()在失败时抛出异常。在onError我有func2()执行数据库提取和func3()通过修改提取的文档来保存数据库。我如何链接这个以避免多个订阅?

       Observable.fromCallable { func1() }
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .take(1)
            .subscribe({
                // update success view
            }, {
                Observable.fromCallable { func2() }
                        .subscribeOn(Schedulers.io())
                        .take(1)
                        .subscribe {
                            Observable.fromCallable { func3() }
                                    .subscribeOn(Schedulers.io())
                                    .take(1)
                                    .subscribe {}
                        }
                // update failure view
            })

1 个答案:

答案 0 :(得分:2)

要在错误后继续,您可以使用onErrorResumeNext()运算符系列 要在成功后继续,您可以使用flatMap()运营商系列。