Junior — Middle
How can you initiate the execution of a suspend function in Kotlin?
sobes.tech AI
Answer from AI
In Kotlin, suspend functions can only be called from another suspend function or from a coroutine. To launch a suspend function outside of a suspend context, a coroutine scope and launch functions, such as launch or async from the kotlinx.coroutines library, are used.
Example:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // simulate a long operation
println("Data received")
}
fun main() {
runBlocking { // launches a coroutine and blocks the current thread
fetchData() // calling suspend function inside suspend context
}
GlobalScope.launch { // launching a coroutine in the global scope
fetchData()
}
Thread.sleep(2000) // to prevent the program from ending early
}
Thus, to initiate a suspend function, you need to be inside a suspend function or launch a coroutine using launch, async, or runBlocking.