NSDictionary 的 PromiseKit 不可见类型转换

PromiseKit unseen type conversion for NSDictionary

我正在尝试从我的路径中获取 json。一切似乎都是正确的(假设我来自 Swift 2 并尝试更新到 Swift 4)但是,事情似乎出了问题。

class func getPlayerStatuses(sportName: String) -> Promise<[NSDictionary]> {
    let path = "api/sports/player-status/\(sportName)/"
    return API.get(path).then { (json: NSDictionary) -> [NSDictionary] in
        let playerUpdates: [NSDictionary] = try json.get("player_updates")
        return playerUpdates
    }
}

我收到以下错误。

Cannot convert value of type '(NSDictionary) throws -> [NSDictionary]' to expected argument type '(_) throws -> _'

有人知道我为什么会收到类型转换错误的线索吗?

返回 non-promise 值的方式在 PMK 6 中发生了变化(参见 Why PromiseKit 5/6? 部分)。现在你应该使用 map 而不是 then 来完成这种工作。