Ios PromiseKit的错误处理

Ios PromiseKit的错误处理,ios,swift,promisekit,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

我有以下列举:

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")
     }
}
但错误并不会被分解成结果。 在我的调试器中,我看到以下内容:

我不明白什么是“什么时候”以及我怎样才能得到这个。错误没有成员“When”。此错误的打印输出如下所示:

When(2, RTB.RequestResult.TimedOut)

我是这样想的:

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
}

调试器有时显示“有趣”的值,这些值并不反映实际存在的内容。如果有疑问,请依赖打印输出到控制台或LLDB中的
po
命令。您是否定义了
RequestResult
enum?