Junior
Czy metoda data task działa synchronicznie czy asynchronicznie?
sobes.tech AI
Odpowiedź od AI
Asynchronicznie.
// URLSessionDataTask jest wykonywany asynchronicznie.
// Zwraca kontrolę natychmiastowo,
// a wynik (dane, odpowiedź, błąd) jest przekazywany do obsługi końcowej
// po zakończeniu żądania sieciowego w tle.
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// Ten blok kodu jest wykonywany asynchronicznie
// po otrzymaniu odpowiedzi od serwera lub wystąpieniu błędu.
if let data = data {
print("Odebrane dane: \(data.count) bajtów")
} else if let error = error {
print("Błąd: \(error.localizedDescription)")
}
}
// Uruchamiamy zadanie.
// Metoda resume() po prostu umieszcza zadanie w kolejce.
task.resume()
// Kod po task.resume() jest wykonywany natychmiastowo,
// bez oczekiwania na zakończenie żądania sieciowego.
print("Zadanie rozpoczęte...")