【发布时间】:2013-03-22 19:05:29
【问题描述】:
我必须进行几次 GWT-RPC 调用。 我想像这样异步启动它们。
service.s1(param1, callback1);
service.s2(param2, callback2);
service.s3(param3, callback3);
我不确定如何“同步”这三个回调。 下一个动作,例如调用方法 nextMethod();应在三个回调完成后完成。 是否有“最佳实践”如何做到这一点?
我想建立一个像这样的小服务类
public class ServiceSync
{ private boolean[] callReady;
public ServiceSync(int n)
{ callReady = new boolean[n];
for(int i=0; i<n;i++)
{ callReady[i]=false;
}
}
public boolean setReady(int i)
{ callReady[i]=true;
for(boolean b : callReady)
{ if (!b) return false;
}
return true;
}
}
在回调中我会说
if (serviceSync.setReady(myId))
{ nextMethod();}
但我不确定这是不是个好主意。 特别是我不确定是否会出现问题,如果 2 个回调“同时”调用此服务类
【问题讨论】:
-
要不要一个接一个地调用一个方法,我的意思是第二个调用依赖于第一个调用返回的数据吗?
-
不,调用应该是“并行的”,我认为代码就是这样做的。这是真的吗?
-
所以你想在所有三个调用都成功的情况下执行一个方法,但是你并行发送调用,对吗?如果是这样,你的代码不清楚你所说的,你在callback1、callback2和callback3中有什么代码?
-
回调存储接收到的数据。
-
好的,发布我的回复