此代码
let promise: Promise<Supplier> = self.supplierController
.update(supplier: supplier)
let block: ((Error) throws -> Supplier) = { (error: Error) throws -> Supplier in
let supplier: Supplier = supplier
guard (error as NSError).code == 405 else {
throw error
}
return supplier
}
let newPromise =
promise
.recover(block)
.done { (_: Supplier) in
changeCompanyIdAndAppendMessage()
}
给出编译时错误
从类型为“(error)throws->
供应商“到非抛出函数类型”(错误)->
担保
为什么它试图改变?在我看来,它必须使用这个函数:
公共函数恢复(on:dispatchqueue?=默认,策略:
promiseKit.catchPolicy=默认,u body:@转义(错误)引发->
u)—>承诺套件。承诺位置:启用,self.t==u.t
来自承诺书
我添加了显式类型,并将promise划分为块以避免遗漏某些内容