我正在尝试等待异步函数完成,然后再处理它的数据(例如,将它保存到我的数据库中)。
我有一个函数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
        }
    }
}

07-24 16:29