Как передать функцию приостановки в качестве параметра другой функции? Котлин сопрограммы - PullRequest
1 голос
/ 28 апреля 2019

Я хочу отправить функцию приостановки в качестве параметра, но она показывает «Модификатор« приостановить »не применим к параметру значения». как это сделать?

fun MyModel.onBG(suspend bar: () -> Unit) {
  launch {
    withContext(Dispatchers.IO) {
        bar()
    }

  }
}

1 Ответ

4 голосов
/ 28 апреля 2019
Модификатор

Lambda suspend должен быть помещен после символа двоеточия, а не впереди. Пример:

fun MyModel.onBG(bar: suspend () -> Unit) {
  launch {
    withContext(Dispatchers.IO) {
      bar()
    }
  }
}
...