Cannot convert return expression of type Promise (

2019-07-29 05:26发布

Cannot convert return expression of type Promise (,) -> DataRequest to return type Promise>

my function is

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

And I get this error on the return Promise line. How do I convert ?

I tried changing my return signature to Promise<DataRequest, Error and get a compile error on that line that Promise is too specialized with 2 parameters instead of 1.

1条回答
姐就是有狂的资本
2楼-- · 2019-07-29 06:29

Problem is with fulfill because it's expecting parameter DataResponse<AnyObject> but you are passing DataResponse<Any>.

Changing return type of your postJson method to Promise<DataResponse<Any>> should solve your problem.

Change this line

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

to

func postJson(_ url: String, parameters: [String: String]) -> Promise<DataResponse<Any>> {
查看更多
登录 后发表回答