Как убедиться, что корутина сработала и завершилась?

Есть кусок кода:

private fun onItemClick(position: Int) {
        if (tasksList[position].crossed) {
            tasksViewModel.updateTask(
                TasksModel(tasksList[position].id, tasksList[position].text, false)
            )
        } else {
            tasksViewModel.updateTask(
                TasksModel(tasksList[position].id, tasksList[position].text, true)
            )
        }
            tasksViewModel.getAllTasks()
    }

Он меняет событие в зависимости от того, зачёркнуто оно или нет. В конце я вызываю метод getAllTasks(), который подгружает все данные в RecyclerView чтобы обновить изменения в записи. Если запускать программу через Debuger, всё работает. Однако если запускать программу в обычном режиме то запись изменяется с 3-4 раза, хотя событие точно срабатывает (Проверял по тостам). Как понять почему не работает обновление RecyclerView?

fun getAllTasks(){
        viewModelScope.launch(Dispatchers.IO) {
            readAllData.postValue(repository.getAllTasks())
        }
    }

Ответы (0 шт):