![](/img/trans.png)
[英]Convert Play Framework java Promise to Play Framework Scala Promise
[英]Play! framework Java Promise example
我正在阅读Java的Play框架,但在Java方面没有太多经验。 有人可以解释一下吗
Promise<Double> promiseOfPIValue = computePIAsynchronously();
Promise<Result> promiseOfResult = promiseOfPIValue.map(
new Function<Double,Result>() {
public Result apply(Double pi) {
return ok("PI value computed: " + pi);
}
}
);
我知道他们正在创建一个promise promiseOfPiValue
,应该异步计算一个double。 然后,他们在promise实例上调用map
,并将新的Function
实例作为参数传递给该Promise实例,该实例已经实现了apply
方法。
地图部分是我迷路的地方-地图方法如何工作? 看起来它返回了Result
类型的新诺言,但是在Function
的实现内部调用apply
方法的逻辑是什么?
从播放文档:
将此诺言映射为
B
类型的诺言。 兑现承诺后,就会立即应用功能function
。
功能:
new Function<Double,Result>() {
public Result apply(Double pi) {
return ok("PI value computed: " + pi);
}
}
一旦computePIAsynchronously
完成,就会使用Controller
定义的ok()
函数将Double
类型的pi
值转换为Result
。
但是在Function的实现中调用apply方法的逻辑是什么?
这就是Promises
和Scala
的美丽。 Scala Promise框架将确保赎回Promise时应用该功能。 如果您想阅读有关此主题的内容,建议您获取scala.concurrent.ExecutionContext
源代码和文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.