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