Sobes.tech
Junior — Middle

SupervisorJob ga o'xshash funksionallikni uning joriy etilmasdan qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Kotlin Coroutines'da SupervisorJob, bolalar korotinlarining mustaqil ishlashini ta'minlaydi: birida xato boshqalarning bekor qilinishiga olib kelmaydi. Bunday xatti-harakatni SupervisorJobsiz amalga oshirish uchun, siz korotinlarning hayot aylanishini qo'lda boshqarishingiz va xatoliklarni shunday ishlov berishingiz mumkinki, ular ota korotinini bekor qilmasin.

Misol:

val parentJob = Job()

fun launchIndependentCoroutine(scope: CoroutineScope, block: suspend () -> Unit) {
    scope.launch(parentJob) {
        try {
            block()
        } catch (e: Throwable) {
            // Xatoni ishlash, parentJob'ni bekor qilmaslik uchun
            println("Bolalar korotinidagi xato: ${e.message}")
        }
    }
}

// Foydalanish
launchIndependentCoroutine(CoroutineScope(Dispatchers.Default)) {
    // korotin kodi
}

Shu tarzda, bolalar korotinlaridagi xatolar ota Job'ni bekor qilmaydi, bu SupervisorJob xatti-harakatini taqlid qiladi.