【发布时间】:2014-08-12 01:16:46
【问题描述】:
我在我的服务器上使用 node.js,并使用 redis 密钥库来存储有关我的角色的数据。每个连接都有它自己的特点。我想将所有关于字符的数据(人,有它的名字,年龄,职业,......)到 Characters 数组中,这样我就可以有选择地将它发送到连接的客户端。
var Characters = [];
for (var ID in Connections) {
redis_client.HGETALL(ID, function(err, result) {
if (result) {
Characters.push(result);
}
});
}
console.log(Characters);
我读过,这是由于异步与同步的问题,所以我做了全局变量字符。
//global variables
var character;
//function code
var Characters = [];
for (var ID in Connections) {
redis_client.HGETALL(ID, function(err, result) {
character = result;
});
if(character) {
console.log(character); // returns correct result
// make copy of character
Characters.push(JSON.parse(JSON.stringify(character)));
character = undefined;
}
}
console.log(Characters); // array of 1 character * number of connection
//BUT I expect different character for each connection
【问题讨论】:
标签: javascript node.js asynchronous redis