Вложенная функция не выполняется на месте объявления - PullRequest
0 голосов
/ 21 июня 2019

в приложении для Android.

  suspend fun getTraidersList(isCustomtHandle: Boolean = false): Any {

            suspend fun execOperation() = traderMonitorRestClient.getTraidersList()
            return runOperationWithoutHandle(::execOperation) // real execute here
}

    suspend private fun runOperationWithoutHandle(func: suspend () -> Response<*>): Response<*> = withContext(Dispatchers.IO) {
            val response: Response<*> = func() // in runtime replace by method body (e.g. traderMonitorRestClient.getTraidersList())
            response
}

Как вы можете видеть в getTraidersList Я использую вложенную однострочную функцию

suspend fun execOperation() = traderMonitorRestClient.getTraidersList()

Реальное выполнение traderMonitorRestClient.getTraidersList() находится на линии

runOperationWithoutHandle(::execOperation)

Вопрос в том, почему traderMonitorRestClient.getTraidersList() не выполнить в месте объявления?

suspend fun execOperation() = traderMonitorRestClient.getTraidersList()
...