Async/await, введённый в Swift 5.5, позволяет писать асинхронный код в последовательном, читаемом стиле, избавляя от сложности вложенных callback'ов.
async, может приостановить своё выполнение в любом выражении awaitfunc fetchUser() async throws -> User {
let data = try await networkClient.getData(from: url)
return try JSONDecoder().decode(User.self, from: data)
}
try/catch вместо error callback'овАсинхронные функции должны вызываться с await из асинхронного контекста — например, внутри Task или другой async-функции:
Task {
let user = try await fetchUser()
print(user.name)
}
Async/await делает асинхронный код Swift безопаснее и проще в поддержке, заменяя completion handler'ы на прямолинейный поток выполнения — при этом runtime эффективно управляет потоками в точках приостановки.
Когда функция async встречает выражение await, она приостанавливает выполнение и блокирует основной поток до получения результата.
Новый — ещё не проверен сообществом
Вы