【发布时间】:2018-10-10 00:12:34
【问题描述】:
我想了解 swift-4 中的 Promise。如何使用多个 then 语句和 done, catch 块。
在这里,我试图从承诺中获得价值。但是我遇到了错误。有人可以帮助我理解承诺吗?
这是我的代码。
import UIKit
import PromiseKit
struct User {
var firstname : String?
var lastname : String?
}
struct APIError {
var message : String?
}
class ViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let userPromise : Promise = self.getUserDetails()
userPromise.then { user -> Void in
//print(user.f)
}
}
func getUserDetails()->Promise<User> {
return Promise<User> { resolve in
let user = User(firstname: "Scot", lastname: "dem")
if ((user.firstname?.count) != nil) {
resolve.fulfill(user)
} else {
let error = APIError(message: "User not valid")
resolve.reject(error as! Error)
}
}
}
}
一旦我得到用户详细信息,我想创建一个全名,依赖于 userPromise 的大写承诺。
我想使用多个 then、done、finally 块。只是想了解用法。
为什么当我们使用 userPromise.then { user -> Void in 时出现错误
我应该在块内给出什么
【问题讨论】:
-
什么错误?在哪里?请edit您的问题清晰准确。
标签: ios swift swift4 promisekit