У меня есть асинхронная функция с completionHandler
(скажем, она называется asyncFunction
), которую я вызываю внутри другой функции. Я хочу, чтобы эта вторая функция ожидала асинхронной функции. Итак, я хочу, чтобы вторая функция работала синхронно. Я использую DispatchGroup
и wait()
, но похоже, что есть тупик. Это ждет вечно.
Вот что я делаю.
let dispatchGroup = DispatchGroup()
dispatchGroup.enter()
DispatchQueue.global().async {
self.asyncFunction() { error in
if let error = error {
debugPrint(error.alertText)
}
dispatchGroup.leave()
}
}
dispatchGroup.wait()
Что я делаю не так?
Кстати, я не могу использовать notify()
в этом случае. Я не хочу, чтобы в моей функции был обработчик завершения.