后,这是我在伪情况:做一些方法返回
function onRequest() {
receiveConnectionRequest();
response = function onConnect() {
playersConnected++;
if (playersConnected == 4) {
sendAllPlayersTheirCards()
}
return OK;
}();
sendResponse(response);
}
当玩家1-3连接,它们会加入到玩家的列表,并确定被归还给他们,在这一点上,他们将设置填补他们的一面。然而,当玩家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中实现这一点,但通用的解决方案是值得欢迎的。
貌似代表团。 plan()在这里设置委托,executePlanned()调用排队的动作。 – Sorpigal 2010-11-29 17:06:37