Функция, возвращающая Отложено с именем, которое не заканчивается асинхронным - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь изучить сопрограммы Kotlin недавно, я заметил, что в случае карты, которая возвращает кучу async IDE отображает сообщение о том, что Function returning Deferred with a name that does not end with async.Это код, который у меня есть

runBlocking {
    try {
        val siteDeferred = async { getSite(order) }
        // Place where I get warning-----------| (Function returning Deferred with a name that does not end with Async)
        //                                     v
        val orderLineDeferred = order.line.map { async { getOrderDetail(it) } }

        // Place where I get warning-------------------| (Function returning Deferred with a name that does not end with Async)
        //                                             v
        val orderLineProductsDeferred = order.line.map { async { getOrderProductInformation(it.productId) } }

        val site = siteDeferred.await()
        val orderLine = orderLineDeferred.awaitAll()
        val orderLineProducts = orderLineProductsDeferred.awaitAll()
    } catch (e: Throwable) {
        throw Exception(e.message)
    }
}

private suspend getOrderDetail(OrderLine orderLine): OrderDetail...
private suspend getSite(Order order): Site ...
private suspend getOrderProductInformation(String productId): Product ...

Я что-то здесь упускаю.Кроме того, я хотел бы знать, является ли это правильным способом обработки исключений или нет, и есть ли способ очистить блок try, чтобы я мог получить значение напрямую, даже если это означает, что мне придется использовать async другими способами.

...