이 질문은 매우 유용합니다. 여러 개의 AsyncCallback을 호출하는 것에 대해 몇 가지 질문이 있지만 루프에서 호출하는 방법을 알려주지 않았습니다.GWTP의 루프에서 여러 개의 AsyncCallback 호출을 수행하는 방법은 무엇입니까?
여기 내 문제입니다. 나는 Gwt-platform을 사용하여 프로젝트를하고있다.
@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);
}
}
문제는 프로그램이 데이터를 표시하지만 잘못된 순서로 나타났다이다 : 나는이 코드를 가지고 발표자 TestPresenter.java을 얻었다. 이전 Async 메서드가 아직 완료되지 않은 상태에서 다음 Async 메서드가 실행되기 시작했기 때문입니다.
일부 사람들은 제 2 전화를 온 액세스에 배치 할 것을 제안했지만, 이는 단순한 2 동기화 호출에만 해당됩니다. 하지만 제 경우에는 많은 비동기 호출을 반복해야합니다. 그러면 어떻게 할 수 있습니까?
i가 약간 변경되었습니다. int idx = -1; 어쨌든 당신의 도움에 대해 대단히 감사합니다. 그것은 완벽하게 작동합니다. – Tum
이 응답에서 변경되었습니다. –
idx = -1로 설정하면 idx ++를 ++ idx로 변경해야합니다. onSuccess 블록이 끝날 때 idx를 늘리면 코드가 명확 해집니다 (코드가 이렇게 변경되었습니다). –