当我意识到我在离开游戏时每隔一段时间(~1 / 100次刷新)出现错误时,我就开始研究文字游戏。我有一个基本对象,包含一个包含播放器对象的属性。我还有一个&text文本冷却时间'我的播放器对象中的属性(阻止您发送垃圾邮件),以及“setInterval”#39;为了所有密集的目的,每隔x秒减少此属性值的功能,如下所示:
setInterval(function() {
for(var p in PLAYER_LIST) {
var player = PLAYER_LIST[p];
player.textCooldown -= 0.1;
}
}, 100);
我还有一个函数可以在客户端断开连接时被调用,这会删除PLAYER_LIST中的该属性。问题是,当客户端断开服务器连接时,每隔一段时间仍然会调用' for'循环(告诉我NodeJS至少在某些方面是多线程的)并尝试更改属性&text;文本Cooldown'一个未定义的对象。
如何在不将if(typeof player != 'undefined'
放在任何地方的情况下解决此问题?有什么办法可以在这个看似同步的任务中实现回调吗?