Junior — Middle
Cum să determiniți dacă execuția contextului actual a fost întreruptă sau anulată?
sobes.tech AI
Răspuns de la AI
În Go, pentru a determina dacă executarea contextului curent a fost întreruptă sau anulată, se folosește metoda Done() a obiectului context.Context. Această metodă returnează un canal care se închide atunci când contextul este anulat. Verificarea se face de obicei astfel:
select {
case <-ctx.Done():
// Contextul a fost anulat sau timeout-ul a expirat
err := ctx.Err() // context.Canceled sau context.DeadlineExceeded
// Tratarea anulării
default:
// Continuăm munca
}
Prin urmare, dacă canalul ctx.Done() este închis, înseamnă că execuția trebuie să fie întreruptă.