Sobes.tech
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() служи као сигнал за безбедно и благовремено завршетак асинхроних операција.