Junior — Middle
Как може да се инициира изпълнението на suspend функция в Kotlin?
sobes.tech AI
Отговор от AI
В Kotlin, функциите suspend могат да бъдат извикани само от друга suspend функция или от корутина. За да стартирате suspend функция извън suspend контекст, използвайте coroutine 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.