Junior — Middle
Πώς μπορεί να ξεκινήσει η εκτέλεση μιας suspend λειτουργίας σε Kotlin;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, οι συναρτήσεις suspend μπορούν να καλούνται μόνο από μια άλλη suspend συνάρτηση ή από μια coroutine. Για να ξεκινήσετε μια suspend συνάρτηση εκτός πλαισίου suspend, χρησιμοποιείτε ένα scope coroutine και λειτουργίες εκκίνησης όπως launch ή async από τη βιβλιοθήκη kotlinx.coroutines.
Παράδειγμα:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // προσομοίωση μιας μακράς λειτουργίας
println("Δεδομένα λήφθηκαν")
}
fun main() {
runBlocking { // ξεκινά μια coroutine και μπλοκάρει το τρέχον νήμα
fetchData() // κλήση suspend συνάρτησης μέσα σε suspend πλαίσιο
}
GlobalScope.launch { // εκκίνηση coroutine στο παγκόσμιο scope
fetchData()
}
Thread.sleep(2000) // ώστε το πρόγραμμα να μην τερματίσει νωρίτερα
}
Επομένως, για να ξεκινήσετε μια suspend συνάρτηση, πρέπει να βρίσκεστε μέσα σε μια suspend συνάρτηση ή να ξεκινήσετε μια coroutine με launch, async ή runBlocking.