我正在尝试将Swift应用程序设置为使用Promises框架(https://github.com/google/promises/blob/master/g3doc/index.md#creating-promises)。但是我无法解决这个编译时错误:在这种情况下,“ Promise”对于类型查找是不明确的。
我试图将Promise更改为另一个不太模糊的类型。例如,我将Promise更改为Promise,并将“ let dataRet =数据作为数据”更改为“ let dataRet =数据作为字符串”,但是那也不起作用。我想指出的是,我是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”对于类型查找是不明确的。
答案 0 :(得分:0)
我通过将返回类型更改为Promises.Promise解决了这个问题。