无法转换Promise(_,_)类型的返回表达式 - &gt; DataRequest返回类型Promise <dataresponse,anyobject>&gt;

时间:2017-06-19 21:24:25

标签: ios swift3 promise promisekit

无法转换Promise()类型的返回表达式 - &gt; DataRequest返回类型Promise&gt;

我的功能是

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)
        }

我在返回Promise行时收到此错误。我该如何转换?

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

1 个答案:

答案 0 :(得分:1)

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

postJson方法的返回类型更改为Promise<DataResponse<Any>>可以解决您的问题。

更改此行

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

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