Junior — Middle
Jak určit, že bylo provádění aktuálního kontextu přerušeno nebo zrušeno?
sobes.tech AI
Odpověď od AI
V jazyce Go se k určení, zda bylo provádění aktuálního kontextu přerušeno nebo zrušeno, používá metoda Done() objektu context.Context. Tato metoda vrací kanál, který se uzavře při zrušení kontextu. Kontrola se obvykle provádí takto:
select {
case <-ctx.Done():
// Kontext byl zrušen nebo vypršela doba
err := ctx.Err() // context.Canceled nebo context.DeadlineExceeded
// Zpracování zrušení
default:
// Pokračovat v práci
}
Pokud je kanál ctx.Done() uzavřen, znamená to, že je třeba provádění přerušit.