【问题标题】:Error on Void with Alamofire and PromiseKit with Swift (Request)使用 Alamofire 和 PromiseKit 使用 Swift 时出现 Void 错误(请求)
【发布时间】:2019-06-21 16:19:12
【问题描述】:

在我最近的项目中,我一直在使用 alamofire 和 promisekit 连接到我的 Web 服务现在我有两者的新版本,当我创建请求时出现此错误

Cannot convert value of type 'DataRequest' to closure result type 'Void'

当我尝试这样做时会发生这种情况:

func CallOne() -> Promise<[String: AnyObject]>{
        return Promise{
            fullfil,reject -> Void in
            return Alamofire.request(
                url_api,
                method: .get).responseJSON{
                    response in
                    switch(response.result){
                    case .success(let res):
                        let data = res as? [String: AnyObject]
                        fullfil(data!)
                    case .failure(let error):
                        reject(error)
                    }
            }
        }
    }

当我尝试使用它时:

func CallTwo(email: String, phone: String) -> Promise<[String: AnyObject]>{
    let params =
        ["email": email, "phone": phone]
    return Promise{
        fullfil,reject -> Void in
        return Alamofire.upload(
            multipartFormData: { MultipartFormData in
                for (key, value) in params {
                    MultipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
                }
        }, to: url_api, method: .post) { (result) in
            switch (result){
            case .success(let upload, _, _):
                upload.responseJSON { response in
                    switch(response.result){
                    case .success(let res):
                        let data = res as? [String: AnyObject]
                        fullfil(data!)
                    case .failure(let error):
                        reject(error)
                    }
                }
            case .failure(let encodingError):
                print(encodingError)
            }
        }
    }
}

我收到此错误Unable to infer closure type in the current context

我该如何解决?提前致谢

【问题讨论】:

    标签: swift xcode alamofire promisekit alamofire-request


    【解决方案1】:

    我用

    解决了这个问题

    密封

    func CallOne() -> Promise<[String: AnyObject]>{
        return Promise{
            seal in
            return Alamofire.request(
                url_api,
                method: .get).responseJSON{
                    response in
                    switch(response.result){
                    case .success(let res):
                        let data = res as? [String: AnyObject]
                        seal.fulfill(data!)
                    case .failure(let error):
                        seal.reject(error)
                    }
            }
        }
    }
    
    func CallTwo(email: String, phone: String) -> Promise<[String: AnyObject]>{
        let params =
            ["email": email, "phone": phone]
        return Promise{
            seal in
            return Alamofire.upload(
                multipartFormData: { MultipartFormData in
                    for (key, value) in params {
                        MultipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
                    }
            }, to: url_api, method: .post) { (result) in
                switch (result){
                case .success(let upload, _, _):
                    upload.responseJSON { response in
                        switch(response.result){
                        case .success(let res):
                            let data = res as? [String: AnyObject]
                            seal.fulfill(data!)
                        case .failure(let error):
                            seal.reject(error)
                        }
                    }
                case .failure(let encodingError):
                    print(encodingError)
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 2018-10-25
      • 2018-12-14
      • 2019-09-08
      • 2018-07-10
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      相关资源
      最近更新 更多