Sobes.tech
Middle — Middle+

Ինչպես իրականացնել ասինխրոն գործողություններ ViewModel-ի ճարտարապետությունում՝ օգտագործելով կորուտիններ?

sobes.tech AI

Պատասխան AI-ից

Для реализации асинхронных операций в ViewModel с использованием корутин обычно применяют viewModelScope, который автоматически отменяет корутины при уничтожении ViewModel.

Пример:

class MyViewModel : ViewModel() {
    fun loadData() {
        viewModelScope.launch {
            val data = fetchDataFromNetwork() // suspend функция
            // обновление UI через LiveData или StateFlow
        }
    }
}

Здесь launch запускает корутину в контексте ViewModel, позволяя выполнять долгие операции без блокировки основного потока. Это обеспечивает безопасное и эффективное управление асинхронностью в архитектуре MVVM.