Sobes.tech
Junior — Middle

Как да определите дали изпълнението на текущия контекст е било прекъснато или отменено?

sobes.tech AI

Отговор от AI

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

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

Ако каналът ctx.Done() е затворен, това означава, че трябва да прекъснете изпълнението.