如果我在路由器的帖子(" /某些")路径中有一个Future [A]作为结果(最后一行),则Ajax客户端无法获得响应并超过超时。等待不起作用。未来onComplete / onSuccess {...}工作正常,但对于服务器,那么如何将其作为响应转换为客户端? (Scalatra框架)
服务器:
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)
}
答案 0 :(得分:0)
onComplete
返回Unit
。但是,您需要从服务器发送到客户端的正确响应。在将来使用map
来创建响应。
post("/stations/test") {
Future[Int] {
// parse jsonData ...
Thread.sleep(3000)
1
}.map { data =>
Response(data)
}
}