Junior — Middle
Kaip nustatyti, ar dabartinio konteksto vykdymas buvo nutrauktas arba atšauktas?
sobes.tech AI
Atsakymas iš AI
Go kalba, norint nustatyti, ar dabartinio konteksto vykdymas buvo nutrauktas arba atšauktas, naudojama Done() metodo iš context.Context objekto. Šis metodas grąžina kanalą, kuris užsidaro, kai kontekstas atšaukiamas. Paprastai patikrinimas atliekamas taip:
select {
case <-ctx.Done():
// Kontekstas atšauktas arba pasibaigė laiko limitas
err := ctx.Err() // context.Canceled arba context.DeadlineExceeded
// Atšaukimo apdorojimas
default:
// Tęsti darbą
}
Jei ctx.Done() kanalas yra uždarytas, tai reiškia, kad vykdymą reikia nutraukti.