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.