Junior — Middle
Lze implementovat vlastní obal pro metody s dokončovacím handlerem (completion handler) pomocí syntaxe async/await?
sobes.tech AI
Odpověď od AI
Ano, je možné vytvořit vlastní obal pro metody s obsluhou dokončení pomocí async/await, aplikací konstrukce s withCheckedContinuation nebo withUnsafeContinuation. To umožňuje převést callback-orientované API na asynchronní, vhodné pro použití s async/await.
Příklad v Swift:
func fetchDataAsync() async throws -> Data {
return try await withCheckedThrowingContinuation { continuation in
fetchData { result in
switch result {
case .success(let data):
continuation.resume(returning: data)
case .failure(let error):
continuation.resume(throwing: error)
}
}
}
}
Zde je fetchData metoda s obsluhou dokončení a fetchDataAsync je její obal s async/await.