Sobes.tech
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ů
}