Sobes.tech
Junior — Middle

Beschrijf een situatie waarin het gebruik van contexten gerechtvaardigd en effectief zou zijn.

sobes.tech AI

Antwoord van AI

In Go worden contexten (context.Context) gebruikt om de levensduur van operaties te beheren, vooral bij asynchrone of netwerkoproepen. Bijvoorbeeld, als je een HTTP-server hebt die verzoeken verwerkt en je wilt de verwerking annuleren als de client de verbinding onderbreekt of als de wachttijd de limiet overschrijdt, dan is het gebruik van de context geschikt.

Voorbeeld:

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Verwerking voltooid")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("Verzoek geannuleerd of timeout bereikt:", err)
    }
}

Hier maakt de context het mogelijk om een langdurige operatie te annuleren als de client de verbinding verbreekt of de timeout verloopt, wat resources bespaart en de reactietijd van de applicatie verbetert.