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-ის გამოყენებით.