Scala: from Seq to Sequential Futures



我有一个BookSeq,我需要以与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)
}

最新更新