如何将承诺中的修改结果作为承诺返回

时间:2018-06-14 10:51:46

标签: swift promisekit

我正在使用带有Alamofire扩展的promiseKit 6。在下面的函数中我想要返回Promise<JSON>(我使用swiftyJson),但是来自alamofire调用的响应是一个包含元组的Promise:Promise<(json: Any, response: PMKAlamofireDataResponse)>

当我从第一个那里得到它时,我怎么能继续只返回json部分?谢谢:))

return firstly {
  self.requestClient.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON()
}.then { arg in
  let (json, rsp) = arg
  return json
}

我也收到此错误:Cannot convert return expression of type 'Promise<_.T>' to return type 'Promise<JSON>' 在线:}.then { arg in ...

1 个答案:

答案 0 :(得分:1)

你应该将Any转换为JSON,尝试这个(未经测试),但文档说你可以使用map / compactMap https://github.com/mxcl/PromiseKit/blob/master/Documentation/CommonPatterns.md

/