Junior — Middle
Asinxron əməliyyatların tamamlanmasını idarə etməkdə Context.Done metodunun rolu nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Context.Done() metodu, kontekst ləğv olunduqda və ya onun müddəti bitdikdə bağlanan bir kanal qaytarır. Bu, asinxron əməliyyatların tamamlanma siqnalını aşkar etməsinə və düzgün şəkildə dayandırılmasına imkan verir.
Məsələn, bir goroutine-də, bu kanalı dinləyə və kontekst ləğv olunduqda işi bitirə bilərsiniz:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Kontekst ləğv edildi, dayandırılır
return
case data := <-dataCh:
// Məlumatların işlənməsi
}
}()
// Daha sonra, goroutine-i dayandırmaq üçün cancel() çağırılır
cancel()
Beləliklə, Context.Done() təhlükəsiz və vaxtında asinxron əməliyyatların tamamlanması üçün siqnal kimi xidmət edir.