如何 return 将 promise 中的修改结果作为 promise
How to return a modified result in a promise as a promise
我正在使用带有 Alamofire 扩展的 promiseKit 6。在下面的函数中,我正在寻找 return Promise<JSON>
(我使用 swiftyJson),但是 alamofire 调用的响应是一个包含元组的 Promise:Promise<(json: Any, response: PMKAlamofireDataResponse)>
当我从第一个开始得到它时,我如何才能继续 return 只是 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 ...
您应该将 Any 转换为 JSON,试试这个(未测试),但文档说您可以使用 map/compactMap https://github.com/mxcl/PromiseKit/blob/master/Documentation/CommonPatterns.md
return firstly {
self.requestClient.request(url, method: .get, parameters: nil,
encoding: JSONEncoding.default, headers: nil).responseJSON()
}.compactMap { data, rsp in
return data as? JSON
}
我正在使用带有 Alamofire 扩展的 promiseKit 6。在下面的函数中,我正在寻找 return Promise<JSON>
(我使用 swiftyJson),但是 alamofire 调用的响应是一个包含元组的 Promise:Promise<(json: Any, response: PMKAlamofireDataResponse)>
当我从第一个开始得到它时,我如何才能继续 return 只是 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 ...
您应该将 Any 转换为 JSON,试试这个(未测试),但文档说您可以使用 map/compactMap https://github.com/mxcl/PromiseKit/blob/master/Documentation/CommonPatterns.md
return firstly {
self.requestClient.request(url, method: .get, parameters: nil,
encoding: JSONEncoding.default, headers: nil).responseJSON()
}.compactMap { data, rsp in
return data as? JSON
}