Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何将承诺中的修改结果作为承诺返回_Swift_Promisekit - Fatal编程技术网

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

Swift 如何将承诺中的修改结果作为承诺返回,swift,promisekit,Swift,Promisekit,我正在使用PromiseKit6和Alamofire的扩展。在下面的函数中,我希望返回Promise(我使用swiftyJson),但alamofire调用的响应是一个包含元组的Promise:Promise 当我从第一个示例中得到它时,我如何继续只返回json部分?谢谢:) 我还遇到了以下错误:无法将“Promise”类型的返回表达式转换为返回类型“Promise” 行:}。然后,{arg in…您应该将任何内容转换为JSON,尝试此操作(未测试),但文档中说您可以使用map/compactM

我正在使用PromiseKit6和Alamofire的扩展。在下面的函数中,我希望返回
Promise
(我使用swiftyJson),但alamofire调用的响应是一个包含元组的Promise:
Promise

当我从第一个示例中得到它时,我如何继续只返回json部分?谢谢:)

我还遇到了以下错误:
无法将“Promise”类型的返回表达式转换为返回类型“Promise”

行:
}。然后,{arg in…

您应该将任何内容转换为JSON,尝试此操作(未测试),但文档中说您可以使用map/compactMap


我正在使用promisekit alamofire扩展,因此当调用responseJSON()时,请求将返回类型为:
promise
的承诺关于它,我更新了问题我认为这是一个编译器类型的问题,但是你能试试我更新的语法吗?你可以试着推断承诺类型,好吧,我要试试它是怎么回事?对我来说,这是个问题,但首先必须删除中的
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
}
return firstly {
    self.requestClient.request(url, method: .get, parameters: nil, 
          encoding: JSONEncoding.default, headers: nil).responseJSON()
}.compactMap { data, rsp in
   return data as? JSON
}