Junior — Middle
Ի՞նչ դեր ունի Context.Done մեթոդը ասինխրոնային գործողությունների ավարտը կառավարելու համար։
sobes.tech AI
Պատասխան AI-ից
Context.Done() մեթոդը վերադարձնում է ալիք, որը փակվում է, երբ կոնտեքստը չեղարկվում է կամ նրա ժամկետը սպառվում է: Սա թույլ է տալիս ասինխրոնային գործողություններին հայտնաբերել ավարտի նշանը և ճիշտ կերպով ընդհատել:
Օրինակ, goroutine- ում կարող եք հետևել այս ալիքին և ավարտել աշխատանքը կոնտեքստը չեղարկելու դեպքում:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Կոնտեքստը չեղարկված է, ավարտել
return
case data := <-dataCh:
// Տվյալների մշակումը
}
}()
// Հետագայում կանչեք cancel(), որպեսզի կանգնեցնեք goroutine- ը
cancel()
Այսպիսով, Context.Done() ծառայում է որպես նշան անվտանգ և ժամանակին ավարտելու համար ասինխրոնային գործողությունները։