这曾经工作,但与版本6的PromiseKit这...
func checkIn(request: CheckinRequest) -> Promise<CheckinResponse> {
let p = checkinService.checkIn(request: request)
.then { r -> Promise<CheckinResponse> in
return .value(r)
}.catch { e in
}
return p
}
...给...
无法将类型“PMKFinalizer”的返回表达式转换为返回类型“Promise”
如何添加catch块并继续向调用函数返回链?
2条答案
按热度按时间e4eetjau1#
你只需要像下面这样删除
catch
块,这里使用捕获块是不相关的,因为
error
应该由被调用方处理。Guarantee
类是一个 Package 器class
,用于进行可丢弃的result
调用。因此我们可以创建一个方法来处理promise
,这样我们就可以使用.done
回调来使用result
,如下所示:现在你可以简单地做,
你仍然可以对多个promise使用链接,如下所示:
rqdpfwrv2#
here介绍了您需要了解的所有内容,只需滚动到
.catch{ /*…*/ }.finally
部分。如果您希望保持相同的功能,可以使用此解决方案:
但是,不建议使用这种模式。
catch
是链终止符。因此,您应该重构您的代码。检查Kamran's answer以获得灵感。