1

I have following enum:

enum RequestResult: ErrorType {
case TimedOut
case ConnectionFailed
}

and in my view controller i have following code:

when(promise1, promise2).then { results -> Void in
//work with results
}.error { error in
     if let err = error as? RequestResult {
     switch err {
     case .TimedOut: print("Timed Out")
     case .ConnectionFailed: print("Connection Failed")
     }
}

but error dont unwraps into RequestResult. In my debugger i see this:

enter image description here

I dont understand what is "When" and how i can get this. error doesn't have member "When". Print out of this error is following:

When(2, RTB.RequestResult.TimedOut)
Andrey M.
  • 3,021
  • 29
  • 42

1 Answers1

1

I figured it out with this:

err in
guard let promiseError = err as? PromiseKit.Error else {return}
switch promiseError {
    case .When(_, let error):
         switch error {
         case RequestResult.TimedOut:
             print("Timed Out")
         case RequestResult.ConnectionFailed:
             print("Connection Failed")
         default: break
         }
    default: break
}
Andrey M.
  • 3,021
  • 29
  • 42