Лямбда, как правило, является функцией обратного вызова. Функции обратного вызова называются так, потому что мы оборачиваем блок кода в функцию и передаем его кому-то другому (или другому месту) для выполнения. Это базовая c инверсия управления, когда код должен выполнять не вы, а кто-то другой (например, фреймворк).
Например, когда вы устанавливаете onClickListener
для кнопки , мы не знаем, когда он будет вызван, мы передаем лямбду для структуры, которая заботится о взаимодействии пользователя, чтобы вызвать указанное действие.
В вашем случае аналогично функция suspend не вызывает sortdata
, он передает его объекту mediatorLiveData
, чтобы вызвать его в своем собственном контексте. Нет необходимости, чтобы лямбда, которую вы передали, была вызвана из тела сопрограммы, так как это запрещено.