gpt4 book ai didi

playframework - 在不使用 AsyncResult 的情况下 Play 2 个异步网络服务调用

转载 作者:行者123 更新时间:2023-12-01 05:29:24 26 4
gpt4 key购买 nike

玩2让你做async webservice calls通过 AsyncResult 不会阻塞线程:

public static Result feedTitle(String feedUrl) {
return async(
WS.url(feedUrl).get().map(
new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
return ok("Feed title:" + response.asJson().findPath("title"));
}
}
)
);
}

这仅在您执行简单的操作时才有效,例如将 WS 调用的结果直接传递给用户。但是,如果您必须对结果进行其他操作怎么办?

看着 the documentation ,看来你可以这样做:
Promise<Response> promise = WS.url("http://some.website.com").get();
Response response = promise.get(); // I've got the result, but I've also blocked

这显然不理想。 有没有办法在允许 Play 将执行传递给其他线程的同时进行异步调用?

最佳答案

看看https://github.com/jroper/play-promise-presentation .这确实让我明白了如何设计一个可以有多个 Promise 调用等的系统,并将各种 Promise 响应操纵成更复杂的响应等所需的内容。

最好的部分是 - 这个例子不会让人觉得太冗长。它读起来非常好,而且很容易理解。

关于playframework - 在不使用 AsyncResult 的情况下 Play 2 个异步网络服务调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com