Sobes.tech
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.