我有一个Seq
Book
我需要以与Seq中相同的顺序保存到我的数据库中。 Book.save
会返回Future[Unit]
如果我编写以下代码,我知道保存订单可能不会被保留:
books.map(_.save)
如何按顺序执行这些保存,但将结果作为Future
返回?
谢谢!
答案 0 :(得分:4)
您可以使用foldLeft:
val res:Future[Unit] = books.foldLeft(Future.successful {}) {
case (acc, book) => acc.flatMap(_ => book.save)
}