In GWT gibt es eine Möglichkeit zu warten, für asynchrone Aufruf zu beenden? Ich brauche die Antwort, um fortzufahren (Es ist ein Login-Bildschirm, so Erfolg bedeutet, ändern, um das eigentliche Spiel und Ausfall bedeutet Aufenthalt in den Login-Bildschirm).
Hier ist der Aufruf:
private void execRequest(RequestBuilder builder)
{
try
{
builder.sendRequest(null, new RequestCallback()
{
public void onError(Request request, Throwable exception)
{
s = exception.getMessage();
}
public void onResponseReceived(Request request,
Response response)
{
s = response.getText();
}
});
} catch (RequestException e)
{
s = e.getMessage();
}
}
Und hier ist die Aufrufmethode:`
public String check()
{
s = null;
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, baseUrl
+ "check&user=" + user + "&password=" + password);
execRequest(builder);
return s;
}
Die Prüfmethode muss die Antwort (oder den Fehler) zurückgeben und darf nicht null zurückgeben.
Ich habe die hirntote Lösung versucht, indem ich schrieb: `
while (s == null);
Um zu warten, bis der Aufruf beendet ist, aber das hat die Seite im Entwicklungsmodus einfach zerdrückt.
(Chrome sagt, dass die Seite nicht reagiert und schlägt vor, sie zu beenden)