【发布时间】:2018-01-19 18:52:09
【问题描述】:
使用可观察值执行任务并发出值
private val performTask = io.reactivex.Observable.create<Boolean>({ emitter ->
// do somethinf
emitter.onNext(true)
emitter.onComplete()
})
// 这也是另一个可观察到的重试。我想重试 2 次,但前提是执行任务成功。
fun <T> io.reactivex.Observable<T>.retryAuth(): Observable<T> {
return this.retry ({ count, error ->
if (count == 2 && error is ApolloException) {
// do something with performTask and return the value
} else false
})
只需要说明实现这一点
【问题讨论】:
-
对于正常完成的流程,使用
repeat(2)进行编号或使用repeat(BooleanSupplier)进行有条件的重试。 -
重复执行 onComplete。但是这个执行是基于错误的。 @akarnokd
标签: java android rx-java rx-kotlin