我正在尝试设置我的 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”对于此上下文中的类型查找不明确。
最佳答案
我通过将返回类型更改为 Promises.Promise 解决了这个问题。
关于swift - 在这种情况下,“Promise”对于类型查找来说是不明确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56247758/