Junior — Middle
Joriy kontekstning bajarilishi to'xtatilgan yoki bekor qilinganligini qanday aniqlash mumkin?
sobes.tech AI
AIdan javob
Go til, hozirgi kontekstning bajarilishini to'xtatish yoki bekor qilishni aniqlash uchun context.Context ob'ektining Done() metodidan foydalaniladi. Bu metod, kontekst bekor qilinganda yopiladigan kanalni qaytaradi. Tekshirish odatda quyidagicha amalga oshiriladi:
select {
case <-ctx.Done():
// Kontekst bekor qilindi yoki timeout o'tdi
err := ctx.Err() // context.Canceled yoki context.DeadlineExceeded
// Bekor qilishni qayta ishlash
default:
// Ishni davom ettirish
}
Shunday qilib, agar ctx.Done() kanali yopilgan bo'lsa, bu bajarilishni to'xtatish kerakligini anglatadi.