Sobes.tech
Junior — Middle

¿Se puede usar el contexto para transmitir datos entre componentes o funciones?

sobes.tech AI

Respuesta de la IA

En Go, el contexto (context.Context) está diseñado para transmitir señales de cancelación, límites de tiempo y valores relacionados con la solicitud u operación, entre goroutines y funciones. Sin embargo, no se recomienda usar el contexto para transmitir datos arbitrarios entre componentes o funciones.

Razones:

  • El contexto debe contener solo datos relacionados con la gestión del ciclo de vida de la operación (por ejemplo, límites de tiempo, cancelaciones).
  • Transmitir datos de negocio a través del contexto complica el código y reduce su legibilidad.

El enfoque correcto es pasar los datos necesarios explícitamente a través de los parámetros de las funciones o usar otras estructuras para intercambiar datos.

Ejemplo de uso del contexto para transmitir un valor relacionado con la solicitud:

ctx := context.WithValue(context.Background(), "userID", 12345)
userID := ctx.Value("userID")

Pero es mejor evitar este enfoque para transmitir datos entre componentes, salvo cuando sea realmente necesario para gestionar el ciclo de vida de la operación.