ios - 使用 PromiseKit 处理错误

标签 ios swift promisekit

我有以下枚举:

enum RequestResult: ErrorType {
case TimedOut
case ConnectionFailed
}

在我的 View Controller 中,我有以下代码:

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”。此错误的打印结果如下:

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
}

关于ios - 使用 PromiseKit 处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36762320/

相关文章:

iphone - 替换 html 字符串中的图像 URL

iOS UIImageView 调整大小问题

swift - promise 套件 6 : Cannot invoke 'then' with an argument list of type '((String, String) -> Promise<Data>)'

swift - 如何将修改后的结果作为 promise 返回 promise

swift - PromiseKit firSTLyOn 样式方法

iphone - 是否可以在 Ios 中使用相机找到对象的宽度?

ios - Swift 4.0 的 CryptoSwift Lib 安装失败

arrays - 如何从核心数据保存的数组中快速获取特定值

ios - 混淆将 Flutter App 的 iOS 部分连接到 Firebase

swift - 当表格中的行数超过 7 行时,多个表格 View 单元格的背景颜色会发生变化