J'utilise les fonctionnalités asynchrones Playframework et Slick, mais je ne suis pas sûr de savoir comment travailler en ligne avec les résultats de la méthode de retour dans l'un pour la compréhension. En ce moment je fais de telle manière:Scala pour la compréhension comment éviter la création de l'avenir lors de la transmission des résultats
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
}
}
Je veux savoir comment se débarrasser de translations2 < - Future(), en plus se déplacer à la fonction (ou fonction envelopper dans un autre qui retourne l'avenir). La fonction sortByHowManyChecks renvoie Map [Long, TranslationObject] qui se trouve dans une bibliothèque tierce.