Sobes.tech
Junior

Εκτελείται η μέθοδος data task συγχρονικά ή ασύγχρονα;

sobes.tech AI

Απάντηση από AI

Ασύγχρονα.

// Το URLSessionDataTask εκτελείται ασύγχρονα.
// Επιστρέφει τον έλεγχο αμέσως,
// και το αποτέλεσμα (δεδομένα, απάντηση, σφάλμα) περνάει στον χειριστή ολοκλήρωσης
// μετά την ολοκλήρωση του δικτύου σε ένα φόντο νήμα.
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Αυτό το μπλοκ κώδικα εκτελείται ασύγχρονα
    // μετά την λήψη της απάντησης από τον διακομιστή ή αν προκύψει σφάλμα.
    if let data = data {
        print("Ληφθέντα δεδομένα: \(data.count) bytes")
    } else if let error = error {
        print("Σφάλμα: \(error.localizedDescription)")
    }
}

// Ξεκινάμε την εργασία.
// Η μέθοδος resume() απλώς βάζει την εργασία στη σειρά.
task.resume()

// Ο κώδικας μετά το task.resume() εκτελείται αμέσως,
// χωρίς να περιμένει την ολοκλήρωση του δικτύου.
print("Εργασία ξεκίνησε...")