これは、擬似コードでの私の状況です。
function onRequest() {
receiveConnectionRequest();
response = function onConnect() {
playersConnected++;
if (playersConnected == 4) {
sendAllPlayersTheirCards()
}
return OK;
}();
sendResponse(response);
}
プレーヤー1〜3が接続すると、プレーヤーのリストに追加され、OKが返されます。その時点で、プレーヤーは自分の側に設定を行います。ただし、プレーヤー4が接続すると、要求への応答が送信される前に、すべてのプレーヤーにカードが送信されます。プレーヤー4はまだ要求に対する応答を受け取っていないため、まだ正しく初期化されておらず、カードを受け取ったときにエラーが発生します。
私が欲しいのはこれです:
function onRequest() {
receiveConnectionRequest();
response = function onConnect() {
playersConnected++;
if (playersConnected == 4) {
plan(sendAllPlayersTheirCards())
}
return OK;
}();
sendResponse(response);
executePlanned() // now cards are sent
}
そのための一般的なパターンはありますか?onConnect関数は別のクラスにあり、onRequestの実装の詳細を認識してはなりません。
私は特にこれをJavaで実装しようとしていますが、一般的なソリューションは大歓迎です。