Junior — Middle
Můžeš vyjmenovat a popsat vzory sestavování řetězců v korutinách?
sobes.tech AI
Odpověď od AI
V korutinách Android (Kotlin) se často používají následující vzory pro vytváření řetězců:
-
Sekvenční provádění (Sekvenční řetězení): korutiny jsou volány jedna po druhé, přičemž výsledek předchozí se používá v následující.
-
Paralelní provádění s agregací výsledků (Paralelní s agregací): několik korutin se spouští paralelně pomocí async a výsledky se pak sbírají přes await.
-
Zpracování chyb v řetězci (Zpracování chyb): použití try/catch uvnitř korutin k ošetření výjimek na každém kroku.
-
Transformace datových toků (Řetězení Flow): použití Flow k vytváření reaktivních řetězců s operátory jako map, filter, flatMap atd.
Příklad sekvenčního řetězce:
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)
}
Příklad paralelního řetězce:
coroutineScope {
val deferred1 = async { fetchData1() }
val deferred2 = async { fetchData2() }
val result1 = deferred1.await()
val result2 = deferred2.await()
// sloučení výsledků
}