Sobes.tech
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.