如何等到观察 returns 导致 android kotlin?

How to wait till observe returns results in android kotlin?

我有这个函数,它调用一个观察来检查 table 中是否有数据,如果是 returns 它们。根据结果​​,我采用最新值并执行函数。

代码段

runBlocking {
            val job = lifecycleScope.launch {
            withContext(Dispatchers.Main) {
//1. first i need to wait here till observe returns results
            viewModel.getAllRatings(context).observe(viewLifecycleOwner) { items ->
                if (items.isNotEmpty()) {
                    rateVal = items[0].rateValue!!
                }
            }
        }
        }

            job.join()
//2. then only after first step done i need this to execute. 
        if (rateVal > 0) {
            ratingBar!!.rating = rateVal.toFloat()
        }
        }

getAllRatings()

fun getAllRatings(context: Context): LiveData<List<Rating>> {
        val dpDatabase = DPDatabase.getDPDatabase(context = context.applicationContext)
        feedbackSelectionRepository = FeedbackSelectionRepository(
            dpDatabase
        )
        allRating = feedbackSelectionRepository.allRatings
        return allRating
    }

但是在当前代码中。第二个函数 (2.) 甚至在第一部分 (1.) 获得一些结果之前就已执行。

在调试器中,流程进入 1。然后无需等待就进入 2。然后一些结果来自 1。

我只需要等待观察结果。我怎样才能做到这一点?请帮我解决这个问题

将 2 的代码放入您在观察回调中执行的操作中。然后在observe之后就会发生。