Sobes.tech
Junior

Ar duomenų užduoties metodas veikia sinchroniškai ar asinchroniškai?

sobes.tech AI

Atsakymas iš AI

Asinchroniškai.

// URLSessionDataTask vykdomas asinchroniškai.
// Jis nedelsiant grąžina valdymą,
// o rezultatas (duomenys, atsakymas, klaida) perduodamas užbaigimo tvarkyklės funkcijai
// po to, kai tinklo užklausa baigiasi fono sraute.
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Šis kodo blokas vykdomas asinchroniškai
    // po serverio atsakymo arba klaidos gavimo.
    if let data = data {
        print("Gauti duomenys: \(data.count) baitų")
    } else if let error = error {
        print("Klaida: \(error.localizedDescription)")
    }
}

// Pradedame užduotį.
// resume() metodas paprasčiausiai įdeda užduotį į eilę.
task.resume()

// Kodas po task.resume() vykdomas nedelsiant,
// nesulaukiant tinklo užklausos pabaigos.
print("Užduotis pradėta...")