使用PromiseKit处理错误

时间:2016-04-21 07:14:47

标签: ios swift promisekit

我有以下枚举:

enum RequestResult: ErrorType {
case TimedOut
case ConnectionFailed
}

在我的视图控制器中,我有以下代码:

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")
     }
}

但错误不会展开到RequestResult中。 在我的调试器中,我看到了:

enter image description here

我不明白什么是"什么时候"以及我如何得到这个。错误没有成员"当"。打印出此错误如下:

When(2, RTB.RequestResult.TimedOut)

1 个答案:

答案 0 :(得分:1)

我想通了这个:

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
}