问题
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:
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>> {
来源:https://stackoverflow.com/questions/44640197/cannot-convert-return-expression-of-type-promise-datarequest-to-return