【发布时间】:2014-07-29 01:06:33
【问题描述】:
我是 JavaScript 新手,还不熟悉异步函数...
我正在使用 node.js 创建一个聊天服务器,这是我的代码的一部分,它监听 getListConnected 事件,当它触发它时,它会在给定的命名空间中查找所有连接的 clients,然后对于每个客户,我将他们的“用户名”存储到另一个数组中,将其转换为 JSON 响应,然后发送:
socket.on('getListConnected', function(msg){
var clients = namespace.clients();//get all client in that nsp
var usernames = Array() ;//init array
for(i in clients)//for each clients
{
clients[i].get("username", function(value){
usernames.push(value);
});
}
socket.emit('getListConnected',JSON.stringify(usernames));//send
});
这段代码的问题是client.get() 方法是异步的,这意味着用户名是空的。
我如何等待用户名直到它被填满,或者我如何等待循环直到它完成?
【问题讨论】:
标签: javascript node.js socket.io dom-events event-driven