Nik*_*nko 2 ios swift rx-swift
有没有优雅的解决方案来造成延迟retry?当错误发生时我想等待 5 秒并重新启动 Observable ( retry)
只需创建一个包装retry(). (Swift5.1 RxSwift 4.3.1)
extension PrimitiveSequence{
func retry(maxAttempts: Int, delay: TimeInterval) -> PrimitiveSequence<Trait, Element> {
return self.retryWhen { errors in
return errors.enumerated().flatMap{ (index, error) -> Observable<Int64> in
if index < maxAttempts {
return Observable<Int64>.timer(RxTimeInterval(delay), scheduler: MainScheduler.instance)
} else {
return Observable.error(error)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用示例:(重试 3 次,每次延迟 2 秒)
yourRxStream.retry(maxAttempts: 3, delay: 2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5649 次 |
| 最近记录: |