RxSwift를 사용하면서 좋은 점 중 하나는 Error Handling 을 간편하게 할 수 있다는 점입니다.
간단히 쓸수 있는 Error handling 도 중요하지만
보다 복잡한 조건을 추가해봅시다.
Conditions:
1. Restful API 실패 시 3번의 retry 해야함
2. 실패하면 다시 요청할 때 까지 300 millisecond의 Interval 이 있어야 함.
3. 특정 Error 값이 발생할 경우에만 retry 를 해야 함
어떻게 해야 할지 감이 오시나요?
바로 소개합니다.
ObservableType retryWhen(predicate:maxRetry:timeInterval:scheduler) 의 Util 함수를 만들었습니다!
2019-09-03 16:56:13.589: retryWhen -> subscribed
2019-09-03 16:56:15.109 : retry count: 0
2019-09-03 16:56:16.609 : retry count: 1
2019-09-03 16:56:18.109 : retry count: 2
2019-09-03 16:56:19.608 : retry count: 3
2019-09-03 16:56:19.609: retryWhen -> Event error(test)
2019-09-03 16:56:19.609: retryWhen -> isDisposed