retryWhen
RetryWhen.swift:
Repeats the source observable sequence on error when the notifier emits a next value.
If the source observable errors and the notifier completes, it will complete the source sequence.
retryWhen
操作符可以通过返回一个Observable告诉上个Observable在什么情况下再次发射元素。
testRetry()
.retryWhen { _ in
return Observable<Int>.interval(2, scheduler: MainScheduler.instance)
}
.subscribe(onNext: { element in
print("element:", element)
}, onError:{ error in
print("error:", error)
})
.disposed(by: bag)
输出:
尝试次数: 1
尝试次数: 2
尝试次数: 3
尝试次数: 4
尝试次数: 5
尝试次数: 6
尝试次数: 7
尝试次数: 8
尝试次数: 9
尝试次数: 10
尝试次数: 11
.
.
.
我们通过设置一个定时器操作符,来每隔2s就进行重试操作。