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