我正在从promiseKit 4.3迁移 - > 6并且卡在这一个错误上。任何帮助,将不胜感激。感谢
错误 - “无法将类型'() - >>环境'的值转换为预期的参数类型'() - > _'”
open func run() -> Promise<Environment> {
return GetSettingsQuery().run().then { result -> Environment in
var environment = Environment.certification
if let dict = result.data as? Dictionary<String, AnyObject>,
let environementRaw = dict[“ABC”] as? Int,
let env = Environment(rawValue: environementRaw) {
environment = env
}
return environment
}
}
答案 0 :(得分:2)
正如PromiseKit文档中的迁移指南和疑难解答指南所述,您需要将then
替换为map
open func run() -> Promise<Environment> {
return GetSettingsQuery().run().map { result -> Environment in
var environment = Environment.certification
if let dict = result.data as? Dictionary<String, AnyObject>,
let environementRaw = dict[“ABC”] as? Int,
let env = Environment(rawValue: environementRaw) {
environment = env
}
return environment
}
}
通常建议您阅读项目文档,尤其是在升级项目的主要版本时。
首先不升级版本的主要版本而不首先阅读发行说明,PromiseKit v6的发行说明多次描述您的确切问题。
将您的依赖项固定到主要版本,所有程序包管理器都支持此功能,并且所有程序包管理器的文档都会告诉您将依赖项主要版本固定。