Sobes.tech
Junior

Il metodo data task viene eseguito in modo sincrono o asincrono?

sobes.tech AI

Risposta dell'AI

In modo asincrono.

// URLSessionDataTask viene eseguito in modo asincrono.
// Restituisce il controllo immediatamente,
// e il risultato (dati, risposta, errore) viene passato al gestore di completamento
// dopo che la richiesta di rete termina in un thread di background.
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Questo blocco di codice viene eseguito in modo asincrono
    // dopo aver ricevuto la risposta dal server o in caso di errore.
    if let data = data {
        print("Dati ricevuti: \(data.count) byte")
    } else if let error = error {
        print("Errore: \(error.localizedDescription)")
    }
}

// Avviamo il task.
// Il metodo resume() mette semplicemente il task in coda.
task.resume()

// Il codice dopo task.resume() viene eseguito immediatamente,
// senza attendere il completamento della richiesta di rete.
print("Task avviato...")