swift - 在这种情况下,“Promise”对于类型查找来说是不明确的

标签 swift xcode 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 解决了这个问题。

关于swift - 在这种情况下,“Promise”对于类型查找来说是不明确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56247758/

相关文章:

ios - UITableViewCell 内的 UITextField

ios - 读取 plist 中的键并获取值

ios - 想要在 10 天后触发一个事件

ios - setBackButtonBackgroundImage 不工作

iphone - 使用自定义 UIBarButton 进行推送转场

java - 阿卡流 : what does mapMaterializedValue mean

angular - 错误 : Type is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor

iOS 8 Swift CS193P 计算器 Bug 开关操作

json - 键嵌套数组和/或字典的 Swift JSON 对象

javascript - Angular promise .then() 重复?