Scala:从 Seq 到 Sequential Futures

Ste*_*ane 4 dictionary scala future seq

我有一个SeqBook,我需要保存到我的数据库,他们是在序列的顺序相同。Book.save返回一个Future[Unit]

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

books.map(_.save)

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

Nya*_*vro 5

您可以使用 foldLeft:

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