Junior — Middle
Πώς να προσδιορίσετε αν η εκτέλεση του τρέχοντος πλαισίου διακόπηκε ή ακυρώθηκε;
sobes.tech AI
Απάντηση από AI
Στην Go, για να προσδιορίσετε αν η εκτέλεση του τρέχοντος πλαισίου έχει διακοπεί ή ακυρωθεί, χρησιμοποιείται η μέθοδος Done() του αντικειμένου context.Context. Αυτή η μέθοδος επιστρέφει ένα κανάλι που κλείνει όταν το πλαίσιο ακυρώνεται. Ο έλεγχος γίνεται συνήθως έτσι:
select {
case <-ctx.Done():
// Το πλαίσιο ακυρώθηκε ή η χρονική υπέρβαση έληξε
err := ctx.Err() // context.Canceled ή context.DeadlineExceeded
// Διαχείριση ακύρωσης
default:
// Συνέχιση εργασίας
}
Έτσι, αν το κανάλι ctx.Done() είναι κλειστό, σημαίνει ότι πρέπει να διακοπεί η εκτέλεση.