Я не гутер GWT, но я знаю, как это делается простым способом. Буду очень признателен, если кто-то расскажет, как это сделать правильно, потому что меня это тоже интересовало. Вы можете просто сделать метод, который будет содержать необходимый код и вызывает его OnSuccess или сделать что-то вроде этого:
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.RootPanel;
public class Aaa implements EntryPoint {
private final MyServiceAsync service = GWT
.create(MyService.class);
private Timer t;
public void onModuleLoad() {
t = new Timer() {
@Override
public void run() {
// Make something or call function
Window.alert("Next Step");
}
};
final Button sendButton = new Button("Send");
sendButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
service.sendInfo("Send First Step Info",
new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
Window.alert("Success Call");
// Call Next step code or function
t.schedule(1);
}
@Override
public void onFailure(Throwable caught) {
Window.alert("Failure Call");
}
});
}
});
RootPanel.get().add(sendButton);
}
}
Hi Тарасом, Любезно рассмотреть follwing код snipet и дайте мне знать, как он будет работать, как вы предлагаете, общественного недействительными SomeMethod() { \t шаг1; \t \t стадия2; // Здесь идет асинхронный вызов \t \t step3; // Я хочу выполнить этот шаг только после завершения шага 2. Что я должен сказать GWT, чтобы дождаться завершения асинхронного вызова? } Я знаю, что мы идем против асинхронного поведения, но для меня это необходимо. – Bhavesh