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