2017-05-18 27 views
1

ReactiveSwift에는 오류가 발생했을 때 이벤트 스트림으로 응답 할 수있는 flatMapError이라는 훌륭한 기능이 있습니다. 간단한 예는 다음과 같을 수 있습니다.PromiseKit flatMapError

authenticationProducer.flatMapError { _ in self.reauthenticate() } 

오류가 발생할 때마다 해당 오류가 재 인증을 시도하는 제작자로 매핑됩니다.

어떻게 PromiseKit을 사용하여 유사한 연산자를 만들 수 있습니까? 지금까지

func flatMapError<U>(_ transform: @escaping (Error) -> Promise<U>) -> Promise<U> 

내 구현 : 당신이 요청으로

func flatMapError<U>(_ transform: @escaping (Error) -> Promise<U>) -> Promise<U> { 
    return Promise<U> { resolve, reject in 
     self.catch { error in 
      let promise = transform(error) 
      let _ = promise.then { value in 
       resolve(value) 
      } 
     } 
    } 
} 

답변