首页 > 解决方案 > Rxjava,在onComplete或onError之后如何重复

问题描述

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

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 本身有什么好的方法吗?

标签: rx-java

解决方案


尝试申请retryrepeat

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

推荐阅读