Простейшим способом обзора такого примера является картирование.Если у вас есть список результатов, но вам нужен список логических значений, сопоставьте его.Не бойтесь многократного отображения, в долгосрочной перспективе это более читабельно:)
val futureResultList: Future[List[Result]] = ???
val futureBooleanList: Future[List[Boolean]] = futureResultList.map(_.map(_ == Result.OK))
val result = futureBooleanList.map(temp => temp.forall(_ == true))
или чуть более кратко:
val futureResultList: Future[List[Result]] = ???
val result = futureResultList.map(_.map(_ == Result.OK)
.forall(_ == true))
и, конечно, как другие людиПредлагаю перейти непосредственно к проверке равенства на объекте Result.Но сопоставление часто полезно для навигации между типами и получения более четкого и читаемого кода.