存储完成处理程序并稍后调用成功/错误

Posted

技术标签:

【中文标题】存储完成处理程序并稍后调用成功/错误【英文标题】:Store completion handler and call success/error later 【发布时间】:2020-06-30 08:02:58 【问题描述】:

我在下面的班级中有一个协议/功能,

func getMovieList(completionHandler: @escaping (Result<[String], Error>) -> Void)  

当调用上述方法时,我想存储完成处理程序,并在后面调用成功/错误。

我尝试创建一个像下面这样的类型别名,

typealias AlbumListCompletionHandler = (((Result<[String], Error>)) -> Void)?

在我的课堂上,

var completionHandlerObj: AlbumListCompletionHandler

func getMovieList(completionHandler: @escaping (Result<[String], Error>) -> Void)  
    completionHandlerObj = completionHandler
    /...
    .../

但我想知道如何调用completionHandlerObj 中的成功/错误块,这有点令人震惊。谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

它应该像这样工作

completionHandlerObj(.success(["",""]))
completionHandlerObj(.failure(ErrorObject))

【讨论】:

该死,我也在尝试。但是我的 Xcode 很疯狂,现在它可以工作了。 @Perseus 我很高兴它现在可以工作了。请接受答案,也许这对其他人也有帮助。

以上是关于存储完成处理程序并稍后调用成功/错误的主要内容,如果未能解决你的问题,请参考以下文章

身份验证服务错误中的完成处理程序

jQuery.ajax() 成功/失败回调何时调用?

调用存储过程抛出错误时如何使任务失败

何时出现错误:或成功:在 Ajax 请求中调用的处理程序

swift 3 和 Xcode 8 中的完成处理程序错误

windows 系统错误码总结