У меня есть простой метод, который должен фильтровать всех людей, если у них есть какое-либо событие.Поэтому, если у Person
нет события, его следует удалить из списка.Отфильтрованный список возвращается в конце.
def filterPersonsWithEvents(persons: Seq[Person]): Seq[Person] = {
persons.filter(sport => {
eventRepo.find(person.name) != null
})
persons
}
Проблема в методе find
из eventRepo
return Future [Event].И этот метод не фильтрует persons
хорошим способом.Как я должен изменить это, чтобы получить правильные результаты?Я новичок в Scala, поэтому, возможно, я не знаю некоторых «хитростей»
EDITED
Теперь мой код выглядит так:
def filterPersonsWithEvents(persons: Seq[Person]): Seq[Person] = {
Future.traverse(persons)(person => {
eventRepo.find(person.name).map(e => person-> e)
}).map(_.filter(_._2 != null).map(_._1))
}