observable.retry { errors in
return errors.enumerated().flatMap{ (index, error) -> Observable<Int64> in
if error is AppError {
let appError = error as! AppError
if appError.code == AppError.retryError.code {
return index < maxRetry ? Observable<Int64>.timer(retryDelay,
scheduler: MainScheduler.instance) : Observable.error(error)
}
}
return Observable.error(error)
}
}
}
}
Trên đoạn code trên nếu muốn retry lại thì observable cứ quăng error là AppError.retryError thì observable được lặp lại.
21/10/2022
Lặp lại một công việc gì đó trong 1 khoảng thời gian trong RxSwift
Trong một số tình huống chúng ta cần thử lại một công việc gì đó trong một số lần hay một khoảng thời gian nhất định.
Trong RxSwift chúng ta làm điều này thế nào?
Đoạn code sau đây sẽ làm lại công việc trong maxRetry lần và khoảng cách giữa hai lần thử lại là retryDelay giây
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét