Rxjava,如何在onComplete或onError之后重复

时间:2018-11-03 12:25:29

标签: rx-java

我有一个代码块可能会这样。

fun main() {
    foo()
            .flatMap {
                bar()
            }
            .subscribe({}, {
                main()
            },{
                main()
            })
}

fun foo(): Observable<Int> {
    // has some real business which take times here
    return Observable.just(1)
}

fun bar(): Observable<Int> {
    // has some real business which take times here
    return Observable.just(2)
}

将在onComplete或onError之后重复。

但是我认为上面的样式不好!在RxJava本身中有什么好的方法吗?

1 个答案:

答案 0 :(得分:1)

尝试应用retryrepeat

foo()
.flatMap {
     bar()
}
.retry()           // <------------------------------------------
.repeat()
.subscribe({}, {
    // never fails
},{
    // never ends
})