Scala:从Seq到Sequential Futures

时间:2016-09-12 07:05:15

标签: scala dictionary future seq

我有一个Seq Book我需要以与Seq中相同的顺序保存到我的数据库中。 Book.save会返回Future[Unit]

如果我编写以下代码,我知道保存订单可能不会被保留:

books.map(_.save)

如何按顺序执行这些保存,但将结果作为Future返回? 谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用foldLeft:

val res:Future[Unit] = books.foldLeft(Future.successful {}) {
  case (acc, book) => acc.flatMap(_ => book.save)
}