Этот вопрос очень полезен. Есть несколько вопросов о вызове нескольких AsyncCallback, но они не сказали, как их вызвать в цикле.Как сделать несколько вызовов AsyncCallback в Loop в GWTP?
Вот моя проблема. Я делаю проект с использованием Gwt-платформы. Я получил ведущий TestPresenter.java, который имеет следующие коды:
@Inject
DispatchAsync dispatchAsync;
private AsyncCallback<GetDataResult> getDataCallback = new AsyncCallback<GetDataResult>() {
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(GetDataResult result) {
// do Something o show the gui here
}
};
public void load_All_Gui_At_Once() {
for(int i=0; i<5; i++) {
GetData getDataAction=new GetData(i);
dispatchAsync.execute(getDataAction, getDataCallback);
}
}
Проблема заключается в том, что программа показывает данные, но он показал в неправильном порядке. Это связано с тем, что следующий метод Async начал работать, пока предыдущий еще не закончен.
Некоторые предложили мне поместить второй вызов внутри onSuccess, но это только для простых 2 вызовов синхронизации. Но в моем случае, я должен зациклить много неизвестного числа вызовов Async, тогда как я могу это сделать?
Я изменил бит int idx = -1; В любом случае, спасибо вам за помощь. Он работает отлично. – Tum
изменил его в ответе. –
, если вы установите idx = -1, вам нужно изменить idx ++ на ++ idx. Хотя увеличение idx в конце блока onSuccess является более ясным (таким образом изменил код). –