如何创建 Promise<Result> play2.0 框架 - Java
Posted
技术标签:
【中文标题】如何创建 Promise<Result> play2.0 框架 - Java【英文标题】:How to create a Promise<Result> play2.0 framework - Java 【发布时间】:2012-10-03 12:31:31 【问题描述】:如何在 Play 2.0 框架 - Java 中创建Promise<Result>
我看到了这个链接http://www.playframework.org/documentation/2.0.4/JavaAsync。它不包含那么多细节。你知道任何教程而不是参考我。请。
【问题讨论】:
【参考方案1】:这是在 Play 2.2 中创建 Promise 的新方法
Promise<Boolean> myPromise = Promise.promise(new Function0<Boolean>()
public Boolean apply() throws Throwable
// TODO - Add Implementation here.
return Boolean.TRUE;
);
【讨论】:
这几乎对我有用,我发现我需要使用 F.Function0 而不是 Function0。【参考方案2】:James Roper(Play 框架开发人员)有一个在 Play 中与 Java 一起使用 Promise 的好例子: https://github.com/jroper/play-promise-presentation/blob/master/src/main/java/controllers/Application.java
【讨论】:
我一直无法让这种代码工作,async() 是在哪里定义的?【参考方案3】:如the doc that you mention 中所述,请使用Akka.future
:
Promise<Result> promiseOfResult = Akka.future(
new Callable<Result>()
public Result call()
return ok("This is a promise result !");
);
【讨论】:
我刚刚尝试在 play 2.2 中使用它,我注意到方法 Akka.future 已被弃用。 每次我在 Play 中闪烁的东西都会被弃用。【参考方案4】:public F.Promise<Result> asyncFoo()
F.Promise<Integer> promise = F.Promise.promise(() -> longRunningCalculation());
return promise.map((Integer i) -> ok("The calculation result is: " + i));
https://www.typesafe.com/blog/play-framework-with-java-8
【讨论】:
以上是关于如何创建 Promise<Result> play2.0 框架 - Java的主要内容,如果未能解决你的问题,请参考以下文章