Sobes.tech
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.