如何在socket.io中locking全局数组

如果我有一个全局数组:

var users = new Array(); 

我想在所有的客户中维持这个arrays:

 socket.on('connect', function() { users.push(socket.id); }); socket.on('disconnect', function() { users.splice(users.indexOf(socket.id), 1); }); 

如果我有另一个function呢?

 socket.on('new_score', function(s) { for (u in users) { ... do some processing ... io.sockets.connected[users[u]].emit('new_score', socket.id, s); ... do some processing ... } }); 

由于socket.io是asynchronous的,在我最后一个函数发出的时候,用户可能已经被断开连接。

所以我需要一种方法来安全地访问数组与所有这些其他functionasynchronous操纵它…

       

网上收集的解决方案 "如何在socket.io中locking全局数组"