Ответ Ajax, ожидание будущего (scala)

Если у меня есть Future[A] в результате (последняя строка) в пути поста ("/some") маршрутизатора, клиент Ajax не сможет получить ответ и превысит время ожидания. Жду не работает. Будущее onComplete/onSuccess {...} работает нормально, но для сервера, так как его перевести клиенту в ответ? (Скалатра рамки)

сервер:

post("/stations/test") {
  Future[Int] {
    // parse jsonData ...
    Thread.sleep(3000)
    1
  }.onComplete { x =>
    // do something on server ...
  }
}

клиент:

@JSExport
def testFuture() = {
  val request = Ajax.post("/stations/test", jsonData)
}

1 ответ

Решение

onComplete возвращается Unit, Но вам нужен правильный ответ для отправки с сервера на клиент. использование map на будущее, чтобы создать ответ.

post("/stations/test") {
  Future[Int] {
    // parse jsonData ...
    Thread.sleep(3000)
    1
  }.map { data =>
    Response(data)
  }
}
Другие вопросы по тегам