2016-03-23 7 views
1

Скала я попыталсяне может получить список [String] из будущего [Список [String]]

complete(db[BSONCollection("user").find(BSONDocument()).cursor[UserObject].collect[List]().toJson) 

я попробовал это, но я не работаю он дает мне ошибку

Main.scala:101: Cannot find JsonWriter or  JsonFormat type class for scala.concurrent.Future[Option[UserObject]] 
[error]     complete(Themodel.get().toJson) 

я пытался

complete(collection.find(emptyQuery).cursor[BSONDocument].collect[List]() map{ t => OK -> t}) 

, но он дает мне ошибку

found : scala.concurrent.Future[(akka.http.scaladsl.model.StatusCodes.Success, Option[UserObject])] 
[error] required: spray.httpx.marshalling.ToResponseMarshallable 
[error]     complete(Themodel.get() map{ 
[error]           ^

ответ

0

Я не анализирую ваш код. just title (List [String] from Future [List [String]] ). Вероятно, ваш код не для производства.

val futureList: Future[List[String]] = Future(List("v","d","f")) 

val someOperationOnFuture: Future[List[String]] = futureList.map(_.map(_.toUpperCase())) 

, чтобы получить результат вы можете использовать:

val res: List[String] = Await.result(futureList, 40.seconds) 

но это делать не лучший способ это просто пример.

Читайте информацию Scala Future

Если вы используете spray-json Это поможет. Я думаю