我正在尝试等待异步函数完成,然后再处理它的数据(例如,将它保存到我的数据库中)。
我有一个函数loadFacebookDetails()
包含两个任务:
从Facebook加载数据makeRequest()
将数据保存到我的数据库saveAndProceed()
在处理保存之前,我需要完成makeRequest()
->(异步)。
这就是我目前所得到的:
我宣布atypealias FinishedDownload = () -> ()
我创造了:
func makeRequest(completed: FinishedDownload){
.... // bunch of code
completed() // call that I completed my task at end of function
}
现在我不知道如何在loadFacebookDetails中调用makeRequest。
我还创建了这个:
makeRequest { () -> () in
saveAndProceed()
}
以及我的saveAndProceed()。
现在有谁能纠正这个语法吗?
最佳答案
你应该有这样的东西:
func makeRequest(completion : ( ( Bool ) -> Void)){
//your stuff goes hre
completion(true)
//or
completion(false)
}
func saveAndProceed() {
//your stuff
}
func loadFacebookDetails() {
makeRequest { (hasSucceed) in
if hasSucceed {
saveAndProceed()
}else{
//handle Error
}
}
}