본문 바로가기

iOS/RxSwift

RxSwift Error Handling 을 제대로 해보자!

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

 

소중한 시간 내어서 읽어주셔서 감사합니다