【发布时间】:2020-04-01 15:06:24
【问题描述】:
我是 swift 和 SwiftUI 的新手,我遇到了一个大问题,希望有人能帮助我。事实上,我有一个函数是我使用对 firebase Db 的调用,但函数在 firebase 响应之前结束。那么有什么办法可以像 swift 中的 await 一样做吗?我尝试自己寻找,但我尝试的一切都不起作用。
我放了一个代码示例,可能会更清楚。
extension SessionStore {
func checkReferralCode(){
let docRef = db.document(user.referredBy)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let otherUser = self.changeReferralUserInformation(dataDescription: document)
docRef.setData(otherUser)
self.user.moneyBalance = 1
return
} else {
print("No referral Code")
self.firestoreError = "referralCode_unvalid"
self.user.referredBy = ""
return
}
}
}
func doInscriptionInformation() {
if (self.user.referredBy != "") {
self.checkReferralCode()
if (self.firestoreError == "" ) {
/* it's always go in this way but 1 secs after the firestoreError change */
print("START UPLOAD")
self.determineUploadType()
} else {
return
}
}
}
它将是输出:
$> START UPLOAD
$> No referral Code
【问题讨论】:
-
这能回答你的问题吗? How to make async / await in Swift?
-
如果您打印(错误),在您将其更改为我的建议后,该错误是什么意思?您声明 docref 的类是否仍然存在?向我们展示您的所有代码,以便我们为您提供帮助。就这几行什么都没说......
-
对不起@Chris,我放了整个代码
-
@CameronLittle,我正在检查这种方式
-
这不是完整的代码——这只是一个扩展;)向我们展示一个可编译的可运行示例...pleeeeease——顺便说一句,你没有做,我对你的变量提出的建议。 ..
标签: swift async-await swiftui