Junior — Middle
Quel est le rôle de la méthode Context.Done dans la gestion de la fin des opérations asynchrones?
sobes.tech IA
Réponse de l'IA
La méthode Context.Done() renvoie un canal qui se ferme lorsque le contexte est annulé ou que son délai d'expiration est atteint. Cela permet aux opérations asynchrones de détecter le signal de fin et de s'interrompre correctement.
Par exemple, dans une goroutine, vous pouvez écouter ce canal et terminer le travail lors de l'annulation du contexte :
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Le contexte est annulé, terminer
return
case data := <-dataCh:
// Traitement des données
}
}()
// Plus tard, appelez cancel() pour arrêter la goroutine
cancel()
Ainsi, Context.Done() sert de signal pour la terminaison sûre et opportune des opérations asynchrones.