Rxjava, как я могу повторить после OnComplete или OnError - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть блок кода, может понравиться.

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 голосов
/ 04 ноября 2018

Попробуйте применить retry и repeat:

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