【发布时间】:2019-05-22 00:10:38
【问题描述】:
我正在尝试设置我的 Swift 应用程序以使用 Promises 框架 (https://github.com/google/promises/blob/master/g3doc/index.md#creating-promises)。但是我无法解决这个编译时错误:在这种情况下,“Promise”对于类型查找来说是模棱两可的。
我已尝试将 Promise 更改为另一种不那么模棱两可的类型。例如,我将 Promise 更改为 Promise,并将“let dataRet = data as Data”更改为“let dataRet = data as String”,但这也不起作用。我想指出,我是 Swift 编程的新手,希望能得到任何帮助。
我正在关注本教程:https://medium.com/@Cordavi/exploring-promises-in-swift-456c26f7c7c8
//do async work
getDataFromAPI()
.then { (_) in }
.catch { (error) in
print(error.localizedDescription)
}
func getDataFromAPI() -> Promise<Data> {
return Promise { fulfill, reject in
//Run the query to get items
self.appSyncClient?.fetch(query: getItemsQuery()) { (result, error) in
//test for error
if let error = error {
reject(error)
}
//test data is not nil
guard let data = result.data else {
let error = NSError(domain: "", code: 100, userInfo: nil)
reject(error)
}
//we have the data
let dataRet = data as Data
fulfill(dataRet)
}
}
}
预期结果:getDataFromAPI 从 API 返回数据并继续执行 .then { (_) in }。
实际结果:编译器错误:“Promise”对于此上下文中的类型查找不明确。
【问题讨论】: