Sobes.tech
Junior — Middle

Чӣ гуна метавон иҷрои функсияи suspend-ро дар Kotlin оғоз кард?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, функсияҳои suspend метавонанд танҳо аз дигар функсияҳои suspend ё аз корутин даъват шаванд. Барои оғоз кардани функсияи suspend дар берун аз контексти suspend, истифодаи scope-и корутин ва функсияҳои оғозкунӣ, масалан, launch ё async аз китобхонаи kotlinx.coroutines, зарур аст.

Масалан:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // имитацияи амали дароз
    println("Маълумот гирифта шуд")
}

fun main() {
    runBlocking { // оғоз кардани корутин ва бастани ҷараёни ҳозира
        fetchData() // даъвати функсияи suspend дар контексти suspend
    }

    GlobalScope.launch { // оғоз кардани корутин дар scope-и глобалӣ
        fetchData()
    }
    Thread.sleep(2000) // барои он ки барнома пеш аз вақти худ тамом нашавад
}

Аз ин рӯ, барои оғоз кардани функсияи suspend, бояд дар дохили функсияи suspend бошед ё корутинро бо истифода аз launch, async ё runBlocking оғоз кунед.