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

时间:2014-05-20 11:14:56

标签: scala asynchronous akka mustache scalatra

我在Scalatra上运行了一个带有Mustache模板的简单Web应用程序。为了呈现页面,我需要对Web服务发出三个单独的请求。 Akka approach shown in Scalatra guides是要走的路吗?我需要引入链接还是锁存?或者可以在结束时将结果传递给Mustache模板吗?

2 个答案:

答案 0 :(得分:1)

您希望在将来完成时调用render方法(mustache())。所以有这样的话:

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

答案 1 :(得分:0)

这是我最终使用的。

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))
}