Ajax 响应等待未来 (scala)
Ajax response wait for future (scala)
如果我在路由器的 post("/some") 路径中有一个 Future[A] 作为结果(最后一行),Ajax 客户端无法获得响应并且超过超时。等待不起作用。 Future 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)
}
onComplete
returnsUnit
。但是,您需要将正确的响应从服务器发送到客户端。在未来使用 map
来创建响应。
post("/stations/test") {
Future[Int] {
// parse jsonData ...
Thread.sleep(3000)
1
}.map { data =>
Response(data)
}
}
如果我在路由器的 post("/some") 路径中有一个 Future[A] 作为结果(最后一行),Ajax 客户端无法获得响应并且超过超时。等待不起作用。 Future 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)
}
onComplete
returnsUnit
。但是,您需要将正确的响应从服务器发送到客户端。在未来使用 map
来创建响应。
post("/stations/test") {
Future[Int] {
// parse jsonData ...
Thread.sleep(3000)
1
}.map { data =>
Response(data)
}
}