Sobes.tech
Junior — Middle

Jak określić, czy wykonanie bieżącego kontekstu zostało przerwane lub anulowane?

sobes.tech AI

Odpowiedź od AI

W Go, aby określić, czy wykonanie bieżącego kontekstu zostało przerwane lub anulowane, używa się metody Done() obiektu context.Context. Ta metoda zwraca kanał, który jest zamykany, gdy kontekst zostanie anulowany. Sprawdzenie zwykle wygląda tak:

select {
case <-ctx.Done():
    // Kontekst został anulowany lub upłynął czas
    err := ctx.Err() // context.Canceled lub context.DeadlineExceeded
    // Obsługa anulowania
default:
    // Kontynuuj pracę
}

Jeśli kanał ctx.Done() jest zamknięty, oznacza to, że należy przerwać wykonywanie.