Sin*_*ine 2 ios swift alamofire promisekit
我正在使用 AlamoFire 和 PromiseKit 进行 API 调用。
代码运行良好 2 年,直到我更新到 Xcode 12.0。
函数现在返回错误:“无法将‘DataRequest’类型的值转换为关闭结果类型‘Void’”
我的功能如下:
func fetchArticlesFromApi (API: String) -> Promise<[Article]> {
return Promise<[Article]> { seal in
return Alamofire.request(API).validate().responseString(completionHandler: { //Error happening here
response in
switch (response.result) {
case .success(let responseString1):
//Do something
case .failure(let error):
print (error)
seal.reject(error)
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
错误发生在函数的第三行 有什么想法可能在此更新中发生了变化?
注意:当我在 xcode 11.6 上运行相同的代码时,代码工作正常!
我在 Github 上找到了答案。
https://github.com/mxcl/PromiseKit/issues/1165
我不应该试图从传递给 Promise.init 的闭包中返回任何内容。奇怪的是它在以前版本的 Xcode 中是如何工作的。
为了解决这个问题,我必须用 _ = 替换 Alamofire.request... 前面的 return
该函数现在看起来像这样:
func fetchArticlesFromApi (API: String) -> Promise<[Article]> {
return Promise<[Article]> { seal in
_ = AF.request(API).validate().responseString(completionHandler: {
response in
switch (response.result) {
case .success(let responseString1):
//Do something
case .failure(let error):
print (error)
seal.reject(error)
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1863 次 |
| 最近记录: |