如何在GWTP的循环中进行多个异步回调调用?

如何在GWTP的循环中进行多个异步回调调用?,gwt,asynchronous,gwt-rpc,gwtp,Gwt,Asynchronous,Gwt Rpc,Gwtp,这个问题很有用。关于调用多个AsyncCallback有一些问题,但他们没有告诉如何在循环中调用它们 这是我的问题。我正在使用Gwt平台做一个项目。我有一个presenter TestPresenter.java,它有以下代码: @Inject DispatchAsync DispatchAsync; private AsyncCallback getDataCallback=新建AsyncCallback(){ @凌驾 失败时的公共无效(可丢弃){ //TODO自动生成的方法存根 } @凌驾

这个问题很有用。关于调用多个AsyncCallback有一些问题,但他们没有告诉如何在循环中调用它们

这是我的问题。我正在使用Gwt平台做一个项目。我有一个presenter TestPresenter.java,它有以下代码:

@Inject
DispatchAsync DispatchAsync;
private AsyncCallback getDataCallback=新建AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
//TODO自动生成的方法存根
}
@凌驾
成功时公共无效(GetDataResult){
//在这里显示gui
}
};
公共无效加载\u所有\u Gui\u一次性(){

对于(int i=0;i这是一个类似于的问题。所有调用都在同一瞬间执行,但响应时间未知,并且不能保证顺序。因此解决方案几乎相同,在回调中调用循环。您的代码应该如下所示:

@Inject
DispatchAsync DispatchAsync;
private AsyncCallback getDataCallback=新建AsyncCallback(){
int-idx=0;
@凌驾
失败时的公共无效(可丢弃){
//TODO自动生成的方法存根
}
@凌驾
成功时公共无效(GetDataResult){
如果(结果!=null){
//在这里执行一些操作或显示gui
}
if(idx<5){
GetData getDataAction=新的GetData(idx);
execute(getDataAction,getDataCallback);
}
idx++;
}
};
公共无效加载\u所有\u Gui\u一次性(){
//启动循环,第一次调用onSuccess
getDataCallback.onSuccess(空);
}

这是一个类似于的问题。您的所有调用都在同一瞬间执行,但响应时间未知,并且不能保证顺序。因此解决方案几乎相同,在回调中调用循环。您的代码应该如下所示:

@Inject
DispatchAsync DispatchAsync;
private AsyncCallback getDataCallback=新建AsyncCallback(){
int-idx=0;
@凌驾
失败时的公共无效(可丢弃){
//TODO自动生成的方法存根
}
@凌驾
成功时公共无效(GetDataResult){
如果(结果!=null){
//在这里执行一些操作或显示gui
}
if(idx<5){
GetData getDataAction=新的GetData(idx);
execute(getDataAction,getDataCallback);
}
idx++;
}
};
公共无效加载\u所有\u Gui\u一次性(){
//启动循环,第一次调用onSuccess
getDataCallback.onSuccess(空);
}

我更改了一点int idx=-1;无论如何,非常感谢您的帮助。它工作得非常好。在响应中更改了它。如果设置idx=-1,则必须按++idx更改idx++。尽管在onSuccess块末尾增加idx更清晰(以这种方式更改代码)。非常感谢,我改回0并将idx++放在if(idx<5)之外。我更改了一点int idx=-1;无论如何,非常感谢您的帮助。它工作得非常好。在响应中更改了它。如果设置idx=-1,则必须通过++idx更改idx++。尽管在onSuccess块末尾增加idx更清晰(以这种方式更改了代码)。非常感谢,我改回了0并将idx++放在if之外(idx<5)。