Połączenie synchroniczne GWT

Mam metodę w GWT, która pobiera dane z bazy danych przy użyciu metody ognia żądań, jak wszyscy wiedzą, jego asynchroniczny Wywołam tę metodę z JS, więc muszę zrobić synchroniczne jest to możliwe

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() + "";

}

i wywołanie tej funkcji z JS w ten sposób:

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

i w środkuonModuleLoad() DzwonięexportStaticMethod().

w html mam przycisk, który nazywam onclickgetAutocomplete() lubię to:

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

Problem polega na tym, że rozmiar zawsze zwraca 0, ponieważ metoda jest asynchroniczna, ale jeśli mógłbym zwrócić wartośćonSuccess to rozwiąże mój problem. Masz jakieś pomysły? Googluję go przez 2 dni i nie mam odpowiedzi.

Innymi słowy:

Mam metodę JS Potrzebuję jej, aby wywołać metodę java, aby pobrać dane z DB, ale synchronicznie!

Przykład

Jeśli mam przycisk HTML i po kliknięciu, przekażę ID do funkcji i muszę ponownie pobrać nazwę z bazy danych za pomocą GWT i powiadomić o tym; po prostu dlatego, że GWT jest asynchroniczny, nie będę w stanie tego robić za każdym razem, a kiedy powiadomię o wyniku, będzie pusty, ponieważ nie jest jeszcze wypełniony.

questionAnswers(4)

yourAnswerToTheQuestion