Я использую асинхронные функции Playframework и Slick, но не знаю, как работать с результатами из метода возврата Future в одном для понимания. Сейчас делаю так:
def getWordDefinitions(checkedWordsIds: List[CheckedWord]) : Future[List[WordDefinition]] = {
val ids = checkedWordsIds.map(_.wordId)
for {
translations <- translationRepo.findByIds(ids)
translations2 <- Future(sortByHowManyChecks(checkedWordsIds, translations))
wordDefinitionsList <- Future(translations2.map(translation => WordDefinition(translation._2.english, translation._2.translation)))
} yield {
wordDefinitionsList
}
}
Я хочу знать, как избавиться от translations2 ‹- Future(), кроме того, чтобы переместить его в функцию (или обернуть функцию в другую, которая возвращает Future). Функция sortByHowManyChecks возвращает Map[Long, TranslationObject], которая находится в сторонней библиотеке.