Я хочу получить ответ URL-адреса URL-адреса в gwt перед вызовом метода Async.Получить HTTP-ответ перед вызовом Async в gwt
Ниже приведен мой рабочий код, но я хочу выполнить его перед вызовом Async.
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 метод?
Любые предложения будут высоко оценены.
Вы можете использовать javascript/jquery обещание. Javascript обещание: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise Jquery обещание: https://api.jquery.com/promise/ –
Но даже если вы получаете (get) значение getStatusCode перед вызовом RequestCallback (asyc), значение будет неактуальным, вероятно, значением по умолчанию для примитивного типа. Вы должны подождать, пока фактический ответ не будет получен или не будет выполнен, и поскольку javascript является моно-потоком, вы не можете блокировать ожидания, вы можете только ждать, используя обратные вызовы. Но, как сказал @MaheshGosemath, вы можете использовать асинхронные обертки как [Promise] (https://github.com/gwtquery/gwtquery) или [Observable] (https://github.com/intendia-oss/rxjava-gwt). –
Я вызывал api с клиентской стороны. Но я должен проверить его на стороне сервера. Поэтому я сделал сервлет и проверил его на javascript. Решила :-) –