我正在做一个回合制游戏,用节点作为我的服务器端代码。问题是我不知道如何让程序在进入另一个函数之前等待输入。最好是,我希望它等待玩家1的动作,一旦收到,然后等待下一个玩家,直到所有回合都完成。而且,这只是立即执行nextFunction,这在了解异步执行后是有意义的。但我不希望这件事发生。
this._players.forEach((player, idx) => {
player.on('turn', (turn) => {
this._turns[index] = turn;
});
});
nextFunction();
我尝试使用async,wait,还有promises,但是我认为我没有正确地实现它们。我也不确定。on()甚至是要走的路。在我的客户端,作为参考,我有几个按钮,当按下时,发出一个id,我可以使用服务器端做逻辑。我想。然后()可能会有帮助,但它可能会使代码难以维护,也难以在开发过程中跟踪,因为我可能需要使用大量的.then()。有没有更好的方法在节点中编写此代码?
基本上,我需要我的代码在继续之前等待用户输入。
1条答案
按热度按时间kb5ga3dv1#
你可以使用
once
来创建一个等待单个事件的承诺,然后在循环中使用它: