0
说我有3个不同的异步任务,我想在调用某个函数之前完成。我知道使用派遣团体做这样的事情,如果这些任务是在一个循环中,我可以使用派送组不在循环中吗?
var dispatchGroup = DispatchGroup()
for task in tasks {
dispatchGroup.enter()
DoSomeTask { (error, ref) -> Void in
dispatchGroup.leave()
}
}
dispatchGroup.notify(queue: DispatchQueue.main, execute: {
DoSomeFunction()
})
不过,我对你怎么做到这一点困惑,如果这些任务都是在同一个函数但不必与海誓山盟,就像推动3个不同的值到你的数据库。事情是这样的:
updateDatabase() {
var dispatchGroup = DispatchGroup()
DoTask1 { (error, ref) -> Void in
}
DoTask2 { (error, ref) -> Void in
}
DoTask3 { (error, ref) -> Void in
}
}
你会在哪里把leave
和enter
声明在这种情况下,因为这?