1

无法将 Promise ( , ) -> DataRequest 类型的返回表达式转换为返回类型 Promise>

我的功能是

func postJson(_ url: String, parameters: [String: String]) -> Promise<DataResponse<AnyObject>> {

        var request = URLRequest(url: URL(string: url)!)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")

        request.httpBody = try! JSONSerialization.data(withJSONObject: parameters)

        return Promise { fulfill, reject in

        manager.request(request)
            .responseJSON { response in
                fulfill(response)
        }

我在 return Promise 行上收到此错误。我该如何转换?

我尝试将我的返回签名更改为Promise<DataRequest, Error并在该行上得到一个编译错误,即 Promise 过于专业化了 2 个参数而不是 1 个参数。

4

1 回答 1

1

问题在于,fulfill因为它需要参数DataResponse<AnyObject>,但您正在传递DataResponse<Any>.

将方法的返回类型更改postJsonPromise<DataResponse<Any>>应该可以解决您的问题。

更改此行

func postJson(_ url: String, parameters: [String: String]) -> Promise<DataResponse<AnyObject>> {

func postJson(_ url: String, parameters: [String: String]) -> Promise<DataResponse<Any>> {
于 2017-06-20T03:23:22.243 回答