12. diel - Hierarchie coroutines a typ SupervisorJob v Kotline
V minulej lekcii, Rozhranie CompletableJob a zistenie stavu coroutines v Kotlin , som si ukázali, ako pre prácu s coroutines
využiť rozhranie CompletableJob
a ďalšie atribúty inštancie
typu Job
.
V dnešnom tutoriále si ukážeme, ako vytvoriť
rodičovskú coroutine (parent coroutine) a ako jej
priradiť potomkov (child coroutines). Zameriame sa
tiež na propagovanie výnimiek v tejto hierarchii objektov
typu Job
a predstavíme si aj nový typ
SupervisorJob
.
Hierarchia coroutines
Pomocou rozhrania Job
môžeme tvoriť hierarchickú
štruktúru inštancií typu Job
. Každá taká inštancia
môžeme mať svojich potomkov. Vďaka tomu môžeme napríklad
efektívnejšie spracovať informácie z nejakého zdroja na internete. V takom
prípade by sme vytvorili jeden completableJob
na odoslanie
požiadavky na server a druhý completableJob
na
spracovanie dát, ktoré nám zašle server. Potom by sme
vytvorili tretí completableJob
, ktorý by reprezentoval
vykonanie oboch predošlých akcií.
Tvorba podriadených coroutines
Ukážme si teda, ako takú hierarchiu coroutines vytvoriť:
fun main() { val parentJob = Job() val requestJob = Job(parentJob) val handleJob = Job(parentJob) parentJob.complete() requestJob.complete() handleJob.complete() println(parentJob.isCompleted) }
V uvedenom príklade sme
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V Kotline tutoriálu vytvoríme hierarchiu coroutines a ukážeme si, ako sa propagujú výnimky medzi potomkami a rodičmi vrátane využitia typu SupervisorJob.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.