← Каталог
Рекомендации по разработке на Swift — Использование замыканий для асинхронных операций
Фрагмент из «Рекомендации по разработке на Swift»: Использование замыканий для асинхронных операций.
func fetchUser(id: String, completion: @escaping (Result<User, Error>) -> Void) {
api.request(endpoint: .user(id)) { result in
completion(result.map(User.init))
}
}
// Использование
fetchUser(id: "123") { result in
switch result {
case .success(let user):
self.display(user)
case .failure(let error):
self.showError(error)
}
} func fetchUser(id: String, completion: @escaping (Result<User, Error>) -> Void) {
api.request(endpoint: .user(id)) { result in
completion(result.map(User.init))
}
}
// Использование
fetchUser(id: "123") { result in
switch result {
case .success(let user):
self.display(user)
case .failure(let error):
self.showError(error)
}
}