Sobes.tech
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)")
    }
}