【发布时间】:2016-12-05 04:49:42
【问题描述】:
我想在 Async 方法调用之前获取 gwt 中 URL 的 Http Response。
以下是我的工作代码,但我想在异步调用之前执行它。
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, "http://localhost:8080");
try {
builder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
}
@Override
public void onError(Request request, Throwable exception) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
} catch (RequestException ex) {
}
return response.getStatusCode();
另外请注意,我在我的项目中使用 JavaScript。有什么方法可以在 javaScript 中编写此代码并在我的 OnModuleLoad 方法中检索 response 吗?
任何建议都将受到高度赞赏。
【问题讨论】:
-
您可以使用 javascript/jquery 承诺。 Javascript 承诺:developer.mozilla.org/en/docs/Web/JavaScript/Reference/… Jquery 承诺:api.jquery.com/promise
-
但是即使在调用RequestCallback(asyc)之前访问(get)getStatusCode值,该值也将无关紧要,可能是原始类型的默认值。您应该等到收到实际响应或失败,并且由于 javascript 是单线程的,您不能阻塞等待,您只能使用回调等待。但是,正如@MaheshGosemath 所说,您可以将异步包装器用作Promise 或Observable。
-
我是从客户端调用 api。但我必须将其验证到服务器端。所以我制作了 servlet 并从 javascript 验证它。解决了:-)
标签: javascript java http gwt