Sobes.tech
Junior — Middle

Describe una situación en la que el uso de contextos sería justificado y efectivo.

sobes.tech AI

Respuesta de la IA

En Go, los contextos (context.Context) se utilizan para gestionar la duración de las operaciones, especialmente en llamadas asincrónicas o de red. Por ejemplo, si tienes un servidor HTTP que procesa solicitudes y quieres cancelar el procesamiento si el cliente interrumpe la conexión o si el tiempo de espera supera el límite, el uso del contexto será apropiado.

Ejemplo:

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Procesamiento completado")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("La solicitud fue cancelada o el tiempo de espera expiró:", err)
    }
}

Aquí, el contexto permite cancelar una operación prolongada si el cliente se desconecta o si expira el tiempo de espera, lo que ahorra recursos y mejora la capacidad de respuesta de la aplicación.