如何在Scalatra上处理胡子模板的多个异步请求

如何在Scalatra上处理胡子模板的多个异步请求,scala,asynchronous,akka,mustache,scalatra,Scala,Asynchronous,Akka,Mustache,Scalatra,我有一个简单的web应用程序运行在Scalatra上,带有胡子模板。为了呈现页面,我需要向web服务发出三个单独的请求。这是路吗?我需要引入链锁还是闩锁?或者可以在结果到达时将结果传递给Mustache模板吗?您希望在将来完成时调用渲染方法(Mustache())。因此,大致如下: makeAsyncCall() map (result => mustache("template.mustache", "result" -> result)) 这就是我最后使用的 new Async

我有一个简单的web应用程序运行在Scalatra上,带有胡子模板。为了呈现页面,我需要向web服务发出三个单独的请求。这是路吗?我需要引入链锁还是闩锁?或者可以在结果到达时将结果传递给Mustache模板吗?

您希望在将来完成时调用渲染方法(Mustache())。因此,大致如下:

makeAsyncCall() map (result => mustache("template.mustache", "result" -> result))

这就是我最后使用的

new AsyncResult {

  val animals = for{
    r1 <- service.getCats()
    r2 <- service.getDogs()
    r3 <- service.getPonies()
  } yield (r1, r2, r3)

  val is = animals map (result => mustache("/template.mustache", "cats" -> result._1, "dogs" -> result._2, "ponies" -> result._3))
}
新建异步结果{
val动物=用于{
r1结果。_2,“小马”->结果。_3)
}