ios - 如何使用 PromiseKit 6.3 返回 Promise
问题描述
我在从 PromiseKit 4.0 转换到 PromiseKit 6.3 时遇到问题。我正在尝试将此特定功能转换为新版本。我怎样才能做到这一点?
func registerUser(_ email: String, givenName: String, familyName: String, password: String) -> Promise<JSON> {
let req = urlRequestForPath("/user/create/local/", parameters: nil, method: .POST) as! NSMutableURLRequest
let queryString = stringFromParameters(["email": email.lowercased() as AnyObject, "given_name": givenName as AnyObject, "family_name": familyName as AnyObject, "password": password as AnyObject, "client_id": oauthClientId as AnyObject])
req.httpBody = queryString.data(using: String.Encoding.utf8, allowLossyConversion: false)
return URLSession.shared.dataTask(with: req as URLRequest).then{(data: Data) -> JSON in
return try! JSON(data: data)
}
}
解决方案
它应该返回如下,
func registerUser(_ email: String, givenName: String, familyName: String, password: String) -> Promise<JSON> {
let req = urlRequestForPath("/user/create/local/", parameters: nil, method: .POST) as! NSMutableURLRequest
let queryString = stringFromParameters(["email": email.lowercased() as AnyObject, "given_name": givenName as AnyObject, "family_name": familyName as AnyObject, "password": password as AnyObject, "client_id": oauthClientId as AnyObject])
req.httpBody = queryString.data(using: String.Encoding.utf8, allowLossyConversion: false)
let p = URLSession.shared.dataTask(.promise, with: req.pmkRequest)
return p.then { (data, response) -> Promise<JSON> in
let json = try! JSON(data: data)
return Promise.value(json)
}
}
推荐阅读
- kubernetes - 在 k8s 集群中添加新节点动态扩展 pod
- angular - CanLoad 守卫可以在 Electron 应用程序中使用吗?
- javascript - 从标签输入中按值递增数组元素
- wkwebview - WKWebView 未检测到 instragram 和 facebook 和 netflix 视频的视频 url
- node.js - Outlook 使用 NodeJS 创建日历事件
- delphi - 安装 RAD 10.4
- ruby - 试图从一种方法内部将控制权传递给 Proc,但我的语法在 ruby 中是错误的
- python - 如何输入有频率的数组?
- dll - TCL:在 Windows 中构建静态库
- javascript - 无法读取未定义的属性...(来自上下文的属性/值)