Junior — Middle
¿Cuál es el papel del método Context.Done en la gestión de la finalización de operaciones asíncronas?
sobes.tech AI
Respuesta de la IA
El método Context.Done() devuelve un canal que se cierra cuando el contexto se cancela o expira su tiempo de vida. Esto permite que las operaciones asíncronas detecten la señal de finalización y se interrumpan correctamente.
Por ejemplo, en una goroutine, se puede escuchar este canal y finalizar el trabajo al cancelar el contexto:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// El contexto ha sido cancelado, finalizar
return
case data := <-dataCh:
// Procesar datos
}
}()
// Más tarde, llamamos a cancel() para detener la goroutine
cancel()
De esta manera, Context.Done() actúa como una señal para la finalización segura y oportuna de operaciones asíncronas.