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 επιτρέπει τη συγγραφή ασύγχρονου κώδικα που φαίνεται σαν συγχρονικός και ελέγχει εύκολα τη λογική εκτέλεσης.