Junior — Middle
Тавсиф диҳед ҳолатее, ки истифодаи контекстҳо дуруст ва муассир буданаш мумкин аст.
sobes.tech AI
Ҷавоб аз AI
Дар Go, контекстите (context.Context) се използват за управление на времето на живот на операциите, особено при асинхронни или мрежови извиквания. Например, ако имате HTTP сървър, който обработва заявки, и искате да отмените обработката, ако клиентът прекъсне връзката или ако времето за изчакване изтече, използването на контекста ще бъде подходящо.
Пример:
func handler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
select {
case <-time.After(5 * time.Second):
fmt.Fprintln(w, "Обработката е завършена")
case <-ctx.Done():
err := ctx.Err()
fmt.Println("Заявката е отменена или изтече времето:", err)
}
}
Тук контекстът позволява да се отменя дълга операция, ако клиентът се изключи или изтече времето, което спестява ресурси и подобрява отзивчивостта на приложението.