Scala:从 Seq 到 Sequential Futures

Scala: from Seq to Sequential Futures

我有一个 Seq of Book,我需要按照它们在 Seq 中的相同顺序保存到我的数据库中。 Book.savereturn一个Future[Unit]

如果我写下面的代码,我知道保存顺序可能不会被保留:

books.map(_.save)

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

你可以使用 foldLeft:

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