Я пишу приложение Scala, используя драйвер ReactiveMongo. Методы, к которым обращаются к db, всегда возвращаются Future[T]
. Являются ли следующие фрагменты кода эквивалентными?
(С onComplete
)
val results: Future[List[Tag]] = Tags.all.toList
results onComplete {
case Success(list) => //do something with list
case Failure(t) => //throw the error
}
(С flatMap
)
Tags.all.toList.flatMap(list => //do something with list)
Какая разница?
Плоская карта не бросает неудачу??? И flatMap
является обратным вызовом типа onComplete
или до тех пор, пока оператор Tags.all.toList
не будет завершен?