Kotlin 在ViewModel类中是否可以调用DAO类的函数而无需协同例程

Kotlin 在ViewModel类中是否可以调用DAO类的函数而无需协同例程,kotlin,android-room,android-architecture-components,kotlin-coroutines,Kotlin,Android Room,Android Architecture Components,Kotlin Coroutines,对数据库的所有查询都是在CouroutineScope中编写的。但是这行代码就在ViewModel类的内部。而且它不会阻塞UI线程。我不明白它是如何执行的 private val nights = database.getAllNights() 您可以在下面的中看到整个回购协议返回一个: 像这样的Dao函数将阻塞线程,直到它得到查询结果为止,这就是为什么在调用它之前要注意转到后台线程的原因 fun getAllNights(): LiveData<List<SleepNight&g

对数据库的所有查询都是在CouroutineScope中编写的。但是这行代码就在ViewModel类的内部。而且它不会阻塞UI线程。我不明白它是如何执行的

private val nights = database.getAllNights()
您可以在下面的

中看到整个回购协议返回一个:

像这样的Dao函数将阻塞线程,直到它得到查询结果为止,这就是为什么在调用它之前要注意转到后台线程的原因

fun getAllNights(): LiveData<List<SleepNight>>
fun getTonight(): SleepNight?