GWT Synchroner Anruf

Ich habe eine Methode in GWT, die die DATEN aus dem DB unter Verwendung der Feuermethode der Anträge zurückholt, da Sie alle wissen, dass es asynchron ist. Ich rufe diese Methode von JS auf, also muss ich synchron machen, ist es möglich

private static String retriveLocation(String part)
{
    ClientFactory clientFactory = GWT.create(ClientFactory.class);
    MyRequestFactory requestFactory = clientFactory.getRequestFactory();
    YadgetRequest request = requestFactory.yadgetRequest();
    String criteria = "!" + part;
    final ArrayList<String> tags = new ArrayList<String>();

    request.getTagsStartingWith(criteria, 10, 0).fire(
            new Receiver<List<TagProxy>>() {
                @Override
                public void onSuccess(List<TagProxy> tagList) {
                    String output = "[";

                    for (TagProxy pt : tagList) {
                        output += "{";
                        output += "\"id\":" + "\"" + pt.getId() + "\",";
                        output += "\"value\":"
                                + "\""
                                + pt.getName().replaceAll("\"", "")
                                        .replaceAll("!", "") + "\"";
                        output += "},";

                    }
                    if (output.length() > 2)
                        output = output.substring(0, output.length() - 1);
                    output += "]";
                    tags.add(output);

                }

                @Override
                public void onFailure(ServerFailure error) {

                }

            });

    return tags.size() + "";

}

und diese Funktion von JS wie folgt aufrufen:

public static native void exportStaticMethod() /*-{
    $wnd.computeLoanInterest =
    $wnd.getAutocomplete [email protected]::retriveLocation(Ljava/lang/String;);
}-*/;

und drinnenonModuleLoad() Ich rufeexportStaticMethod().

und in html habe ich einen button den ich bei klick aufrufegetAutocomplete() so was:

<input type="button" onclick="alert(getAutocomplete('j'))" value="momo" /> 

Das Problem ist, dass die Größe immer 0 zurückgibt, weil die Methode asynchron ist, aber wenn ich den Wert zurückgeben könnteonSuccess das würde mein problem lösen. Irgendwelche Ideen bitte? Ich habe 2 Tage gegoogelt und keine Antwort bekommen.

Mit anderen Worten:

Ich habe JS-Methode Ich brauche es, um Java-Methode aufzurufen, um Daten aus der DB abzurufen, aber synchron!

Beispiel

Wenn ich eine HTML-Schaltfläche habe und auf "Klicken" klicke, gebe ich die ID an eine Funktion weiter und muss den Namen über GWT aus der Datenbank abrufen und benachrichtigen. Nur weil GWT asynchron ist, kann ich dies nicht jedes Mal tun. Wenn ich das Ergebnis alarmiere, ist es leer, da es noch nicht gefüllt ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage