Junior — Middle
Koja je uloga metode Context.Done u upravljanju završetka asinhronih operacija?
sobes.tech АИ
Одговор од АИ
Метод Context.Done() враћа канал који се затвара када се контекст отказује или истекне његово време. Ово омогућава асинхроним операцијама да детектују сигнал за завршетак и да се правилно прекину.
На пример, у горутини, можете слушати овај канал и завршити рад када се контекст отказује:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Контекст је отказан, завршетак
return
case data := <-dataCh:
// Обрада података
}
}()
// Касније, позивамо cancel() да зауставимо горутину
cancel()
Овим се Context.Done() служи као сигнал за безбедно и благовремено завршетак асинхроних операција.