繁体   English   中英

玩! 框架Java 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方法的逻辑是什么?

这就是PromisesScala的美丽。 Scala Promise框架将确保赎回Promise时应用该功能。 如果您想阅读有关此主题的内容,建议您获取scala.concurrent.ExecutionContext源代码和文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM