Junior — Middle
Ako určiť, či bolo vykonanie aktuálneho kontextu prerušené alebo zrušené?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa na určenie, či bolo vykonávanie aktuálneho kontextu prerušené alebo zrušené, používa sa metóda Done() objektu context.Context. Táto metóda vracia kanál, ktorý sa zatvorí pri zrušení kontextu. Kontrola sa zvyčajne vykonáva takto:
select {
case <-ctx.Done():
// Kontext bol zrušený alebo vypršal čas
err := ctx.Err() // context.Canceled alebo context.DeadlineExceeded
// Spracovanie zrušenia
default:
// Pokračovať v práci
}
Ak je kanál ctx.Done() zatvorený, znamená to, že vykonávanie je potrebné prerušiť.