Sobes.tech
Back to questions
Junior — Middle
76

Каким образом определить, что выполнение текущего контекста было прервано или отменено?

Answer from AI

sobes.tech AI

В Go для определения, что выполнение текущего контекста было прервано или отменено, используется метод Done() у объекта context.Context. Этот метод возвращает канал, который закрывается при отмене контекста. Обычно проверку делают так:

select {
case <-ctx.Done():
    // Контекст отменён или истёк таймаут
    err := ctx.Err() // context.Canceled или context.DeadlineExceeded
    // Обработка отмены
default:
    // Продолжаем работу
}

Таким образом, если канал ctx.Done() закрыт, значит выполнение нужно прервать.