Junior — Middle
Wat is de rol van de methode Context.Done bij het beheren van het voltooien van asynchrone operaties?
sobes.tech AI
Antwoord van AI
De methode Context.Done() geeft een kanaal terug dat wordt gesloten wanneer de context wordt geannuleerd of de tijd verloopt. Dit stelt asynchrone operaties in staat om het beëindigingssignaal te detecteren en correct te onderbreken.
Bijvoorbeeld, in een goroutine kan je dit kanaal beluisteren en het werk beëindigen bij het annuleren van de context:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Context is geannuleerd, beëindigen
return
case data := <-dataCh:
// Gegevens verwerken
}
}()
// Later roep je cancel() aan om de goroutine te stoppen
cancel()
Op deze manier dient Context.Done() als een signaal voor een veilige en tijdige beëindiging van asynchrone operaties.