val pageDataFutures : Seq[Future[PageData]]= ??? //4 api calls each resulting in a future of PageData
def source : Source[PageData, NotUsed] = Source(
pageDataFutures.flatMap(future => Await.result(future,atMost)).toList
)
source.runForeach(println)
我期望消息源运行
'runForEach'
当每一个未来都完成时。但是,所有的4个API调用都被发出,然后源代码中的数据都被一次打印出来。它不应该将数据打印为可用的吗?我正在使用
Await
为每个未来。所以可以保证在下一个未来
Awaited
上一个未来的结果可用,并且可以由println使用。