Sobes.tech
Junior — Middle

Korutinalarda zəncir qurma şablonlarını sadalayabilir və təsvir edə bilərsənmi?

sobes.tech Süni İntellekt

AI-dan cavab

Android (Kotlin) korutinlərində, zəncirləri qurmaq üçün tez-tez aşağıdakı nümunələr istifadə olunur:

  • Silsiləli icra (Silsiləli zəncirləmə): korutinlər bir-bir çağırılır, əvvəlkinin nəticəsi növbətində istifadə olunur.

  • Paralel icra və nəticələrin toplanması (Paralel və toplama ilə): bir neçə korutin async istifadə edilərək paralel başlatılır və sonra nəticələr await ilə toplanır.

  • Zəncir içində səhv idarəetməsi (Səhv idarəetməsi): hər mərhələdə istisnaları idarə etmək üçün korutinlər daxilində try/catch istifadə olunur.

  • Məlumat axınlarının çevrilməsi (Flow zənciri): map, filter, flatMap və s. operatorları ilə reaktiv zəncirlər qurmaq üçün Flow istifadə olunur.

Silsiləli zəncir nümunəsi:

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)
}

Paralel zəncir nümunəsi:

coroutineScope {
    val deferred1 = async { fetchData1() }
    val deferred2 = async { fetchData2() }
    val result1 = deferred1.await()
    val result2 = deferred2.await()
    // nəticələrin birləşdirilməsi
}