Sobes.tech
Middle — Middle+

Πώς μπορείτε να χρησιμοποιήσετε το async/await για την εκτέλεση διαδοχικών αιτημάτων με την δυνατότητα να τερματίσετε τη διαδικασία μετά το τρίτο αίτημα, χωρίς να περιμένετε το τέταρτο;

sobes.tech AI

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

Για την εκτέλεση διαδοχικών αιτημάτων χρησιμοποιώντας async/await και την δυνατότητα διακοπής της διαδικασίας μετά το τρίτο αίτημα, μπορείτε να χρησιμοποιήσετε έναν απλό βρόχο με έλεγχο αποτελέσματος ή μετρητή. Για παράδειγμα, σε Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Το αίτημα \(i) ολοκληρώθηκε με αποτέλεσμα: \(result)")
        if i == 3 {
            print("Τερματισμός διαδικασίας μετά το τρίτο αίτημα")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Προσομοίωση ασύγχρονου αιτήματος
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 δευτερόλεπτο
    return "Απάντηση \(number)"
}

Σε αυτό το παράδειγμα, τα αιτήματα εκτελούνται διαδοχικά επειδή χρησιμοποιούμε το await μέσα στον βρόχο. Μετά το τρίτο αίτημα, ο βρόχος διακόπτεται με την εντολή break, και το τέταρτο αίτημα δεν εκτελείται.

Έτσι, το async/await επιτρέπει τη συγγραφή ασύγχρονου κώδικα που φαίνεται σαν συγχρονικός και ελέγχει εύκολα τη λογική εκτέλεσης.