いくつかの GWT-RPC 呼び出しを行う必要があります。このように非同期で起動したいと思います。
service.s1(param1, callback1);
service.s2(param2, callback2);
service.s3(param3, callback3);
3 つのコールバックを「同期」する方法がわかりません。次のアクション。たとえば、メソッド nextMethod() を呼び出します。3 つのコールバックが完了した後に実行されます。これを行うための「ベストプラクティス」はありますか?
このような小さなサービスクラスを構築することを考えました
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 つのコールバックがこの scrviceclass を「同時に」呼び出している場合、問題が発生しないかどうかはわかりません。