use*_*088 6 java promise java-7 playframework-2.0
我正在阅读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);
}
}
);
Run Code Online (Sandbox Code Playgroud)
我知道他们正在创建一个promiseOfPiValue应该异步计算双重的承诺.然后,他们调用map那个他们传递一个新实例Function作为参数的promise实例,该实例实现了一个apply方法.
地图部分是我迷路的地方 - 地图方法如何运作?看起来它返回了一个新的类型的承诺Result,但是在实现中调用apply方法的逻辑是什么Function?
来自播放文档:
将此承诺映射到类型的承诺
B。function一旦承诺被兑现,该功能就会被应用。
功能:
new Function<Double,Result>() {
public Result apply(Double pi) {
return ok("PI value computed: " + pi);
}
}
Run Code Online (Sandbox Code Playgroud)
完成后将立即使用定义的函数将pi类型的值转换Double为。Resultok()ControllercomputePIAsynchronously
但是在 Function 的实现中调用 apply 方法的逻辑是什么?
Promises这就是和的美妙之处Scala。Scala Promise 框架将确保在赎回 Promise 时应用该函数。如果您想阅读该主题,我建议您获取scala.concurrent.ExecutionContext.
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |