Sobes.tech
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() ծառայում է որպես նշան անվտանգ և ժամանակին ավարտելու համար ասինխրոնային գործողությունները։