Junior — Middle
Môžeš vymenovať a opísať vzory zostavovania reťazcov v korutínach?
sobes.tech AI
Odpoveď od AI
V korutinách Android (Kotlin) sa často používajú nasledujúce vzory na budovanie reťazcov:
-
Sekvenčné vykonávanie (Sekvenčné reťazenie): korutiny sa volajú jedna po druhej, kde výsledok predchádzajúcej sa používa v nasledujúcej.
-
Paralelné vykonávanie s agregáciou výsledkov (Paralelné s agregáciou): niekoľko korutín sa spúšťa paralelne pomocou async a výsledky sa následne zbierajú cez await.
-
Spracovanie chýb v reťazci (Spracovanie chýb): použitie try/catch vo vnútri korutín na spracovanie výnimiek na každom kroku.
-
Transformácia dátových tokov (Reťazenie Flow): použitie Flow na vytváranie reaktívnych reťazcov s operátormi ako map, filter, flatMap a pod.
Príklad sekvenčného reťazca:
suspend fun fetchData(): Data = ...
suspend fun processData(data: Data): ProcessedData = ...
suspend fun saveData(processedData: ProcessedData) = ...
suspend fun chain() {
val data = fetchData()
val processed = processData(data)
saveData(processed)
}
Príklad paralelného reťazca:
coroutineScope {
val deferred1 = async { fetchData1() }
val deferred2 = async { fetchData2() }
val result1 = deferred1.await()
val result2 = deferred2.await()
// spojenie výsledkov
}