Swift中使用Promise遇到报错。
报错的代码:
func launch() {
firstly { // 这一行报错:Type '()' cannot conform to 'Thenable'
getLoginToken()
}
.then { token in
答案:因为这里还没来得及写下一步操作,未能返回一个thenable的值,结果错误信息关联到了上一行函数。
}
}
func getLoginToken() -> Promise<String> {
.value("token")
}
func getUserData() -> Promise<String> {
.value("data")
}
两种解决方案:
func launch() {
firstly {
getLoginToken()
}
.then { token in
getUserData()
// 此处加上调用就能编译通过
}
}
func launch() {
firstly {
getLoginToken()
}
.done { token in
// 此处不用then,改用done的话也不会报错。因为那个错误只在then中触发🐶
}
}