无法转换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)
}
我在返回Promise行时收到此错误。我该如何转换?
我尝试将我的返回签名更改为Promise<DataRequest, Error
并在该行上获得编译错误,Promise太专业化了2个参数而不是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>> {