我有Future[List[Object]]
喜欢
val futuresList: Future[List[Object]] = foo()
我还有另一种方法可以使用futuresList
并进行一些计算。
我希望这个未来能够在我将其传递给另一个返回Future
的方法之前完成执行。
val futuresList: Future[List[Object]] = foo()
val anotherFuture: Future[Seq[Object]] = bar(futuresList, x, y)
现在我想异步等待futureList完成,之后我想把它传递给bar()
到目前为止,我已尝试过这个
futuresList.onComplete {
case Success(data) => {
//call bar here, but how do I get access 'anotherFuture' ?
}
}
通过确保bar()
完成,希望获得有关如何从futuresList
访问回复的一些指导。感谢
答案 0 :(得分:1)
val anotherFuture = futuresList.flatMap(data => bar(Future.successful(data), x, y))
或者您更喜欢for-comprehension语法,它是等效的:
val anotherFuture = for {
data <- futuresList
} yield {
bar(Future.successful(data), x, y)
}