Minha ação PlayFramework retorna antes que um futuro esteja pronto. Como atualizo um componente da página da web?

Eu tenho uma função Scala PlayFramework que chama MongoDB e obtém umFuture[Seq[Document]] resultado. Após um evento de zoom / panorâmica do mapa, este PlayAction A função é chamada de JavaScript em uma página da web via xhttp / GET. O método My Action no lado Play retorna antes do FutureonComplete/Success É executado. Por isso, estou procurando uma maneira de chamar uma função JavaScript para obter os dados quando o Scala Future for onComplete / Success. Como eu faria isso ou estou vendo isso errado?

Aqui está o código em questão.

def rect(swLon: Float, swLat: Float, neLon: Float, neLat: Float) = Action {
  val sb = new StringBuilder()
  sb.append("<tt>boundingBox: swLon=" + swLon + ", swLat=" + swLat + ", neLon=" + neLon + ", neLat=" + neLat + "</tt>")
  if (oDb.isDefined) {
    val collection: MongoCollection[Document] = oDb.get.getCollection(collectionName)
    val fut = getFutureOne(collection) // returns a Future[Seq[Document]]
    fut onComplete {
      case Success(docs) => { for (doc <- docs) { setMongoJson(doc.toJson } }
      case Failure(t) => { println("FAIL: " + t.getMessage) }
    }
  }
  Ok(sb.toString)
}

// below is temporary until I figure out a better way to store/return the result when it comes in
private var mongoJson: String = ""
private def setMongoJson(s: String): Unit = mongoJson = s

getFutureOne é temporário, apenas faz umdb.collection.find().first().toFuture. Eu só queria ter certeza de que minha conexão com o MongoDB estava funcionando e está. Na verdade, vou substituí-lo por uma consulta para retornar dados que caem dentro da caixa delimitadora.

questionAnswers(1)

yourAnswerToTheQuestion