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