Этот код
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()
}
выдает ошибку времени компиляции
неверное преобразование из функции выброса типа '(Ошибка) throws -> Поставщик' в тип функции non-throwing '(Ошибка) -> Гарантия '
Почему он пытается конвертировать?Мне кажется, он должен использовать этот func:
public func recovery (on: DispatchQueue? = Default, policy: PromiseKit.CatchPolicy = default, _ body: @escaping (Error) throws -> U) -> PromiseKit.Promise, где U: Thenable, Self.T == UT
из PromiseKit
Я добавил явные типы и разделил обещание на блоки, чтобы не пропустить что-то