我需要解释一下我的游戏控制器的未来情况。
我的服务层中有一些代码正在调用Java库API。当我第一次在控制器中这样调用Java API时:
<?php
$params = http_build_query(array(
"access_key" => "YOUR_ACCESS_KEY"
"url" => "https://example.com",
));
$image_data = file_get_contents("https://api.apiflash.com/v1/urltoimage?" . $params);
file_put_contents("screenshot_api_example.jpeg", $image_data);
?>
对于此控制器,我没有看到任何操作。我希望由于调用someJavaAPI而采取行动。然后有人告诉我,某些JavaAPI快要死了,因为控制器完成得太早了。是吗?
因此,我将代码更改为这样:我在Future中包装了一些JavaAPI()方法
def someController() = Action {
someJavaAPI()
Ok("done")
}
现在我在我的contolerler中这样称呼它:
def someJavaAPI() = Future {....code....}
这很好。
我的问题是:将来包装一些JavaAPI会使控制器线程等到完成后再执行映射功能吗?
另外,什么是Promise?我可以在这里使用Promise吗?我不确定。