Junior — Middle
Czy możesz wyjaśnić, czym jest programowanie asynchroniczne w kontekście konstrukcji Async/Await?
sobes.tech AI
Odpowiedź od AI
Programowanie asynchroniczne z użyciem Async/Await pozwala na pisanie kodu, który wykonuje długotrwałe operacje (np. żądania sieciowe lub odczyt plików) bez blokowania głównego wątku wykonawczego. Kluczową ideą jest to, że funkcja oznaczona jako async może zawiesić swoje wykonanie na instrukcji await, oczekując na zakończenie operacji asynchronicznej, nie blokując przy tym wątku.
Ułatwia to pracę z asynchronicznością, czyniąc kod bardziej czytelnym i przypominającym sekwencyjny, w przeciwieństwie do zagnieżdżonych callbacków lub łańcuchów promes.
Przykład w Swift:
func fetchData() async throws -> Data {
let url = URL(string: "https://example.com/data.json")!
let (data, _) = try await URLSession.shared.data(from: url)
return data
}
Task {
do {
let data = try await fetchData()
print("Dane otrzymane: \(data)")
} catch {
print("Błąd: \(error)")
}
}