2016-09-12 6 views
3

У меня есть Seq из Book что мне нужно сохранить в моей базе данных в том же порядке, в каком они есть в Seq. Book.save возвращает Future[Unit]Scala: from Seq to Sequential Futures

Если я пишу следующий код, я знаю, что сохранить порядок не может быть сохранено:

books.map(_.save)

Как можно последовательно выполнить эти сейвов, но возвращает результат как Future? Спасибо!

+0

Этот код может помочь сохранить книги в последовательном http://stackoverflow.com/a/41657239 – LuisKarlos

ответ

4

Вы можете использовать foldLeft:

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