Sobes.tech
Junior — Middle

Kāda ir metodes Context.Done loma asīnhronisko operāciju pabeigšanas pārvaldībā?

sobes.tech AI

Atbilde no AI

Context.Done() metode atgriež kanālu, kas tiek aizvērts, kad konteksts tiek atcelts vai beidzies tā derīguma laiks. Tas ļauj asenhroniskajām operācijām noteikt pabeigšanas signālu un pareizi pārtraukt darbu.

Piemēram, gorutīnā var klausīties šo kanālu un pabeigt darbu, kad konteksts tiek atcelts:

ctx, cancel := context.WithCancel(context.Background())
go func() {
    select {
    case <-ctx.Done():
        // Konteksts ir atcelts, pabeigt
        return
    case data := <-dataCh:
        // Datu apstrāde
    }
}()

// Vēlāk izsauc cancel(), lai apturētu gorutīnu
cancel()

Tādējādi Context.Done() kalpo kā signāls drošai un laikus pareizai asenhronisko operāciju pabeigšanai.