【问题标题】:'Promise' is ambiguous for type lookup in this context在这种情况下,“Promise”对于类型查找是模棱两可的
【发布时间】: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”对于此上下文中的类型查找不明确。

【问题讨论】:

    标签: swift xcode promise


    【解决方案1】:

    我通过将返回类型更改为 Promises.Promise 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-17
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多