swift - 在这种情况下,“Promise”对于类型查找是模棱两可的
问题描述
我正在尝试设置我的 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 解决了这个问题。
推荐阅读
- python - Apache Airflow Docker:如何安装外部气流提供程序包
- gdb - KGDB:来自目标的虚假跟踪状态回复:超时
- python - not bool 不起作用,但 bool != True 有效
- javascript - 如何在不每次在 Microsoft Bot Framework Direct Line JS Client (REACTJS) 中创建直线对象的情况下从服务器获取响应
- kotlin - 使用 Kotlin 使用 for 循环生成乘法表
- excel - 使用幂查询按数字字符串的最小长度从文本中提取数字
- c# - System.Drawing.Bitmap 具有空引用或无效值
- php - 忽略已创建的正则表达式函数中的字符
- pandas - 高效的数据框查找和提取
- python - 如何按 ID 和值列对行求和?