1
我有一个更大的哈希值与该公约设定的部分:从redis获取密钥列表?
redis.hmset("this:that:a", {"one": 'two', "three": 'four'});
redis.hmset("this:that:b", {"five": "six", "seven": "eight"});
var all_parts = {};
redis.keys("this:that:*", function(err, keys) {
for (var i=0; i<keys.length; i++){
key = keys[i];
redis.hgetall(key, function(err, obj) {
all_parts[key] = obj;
if (i >= keys.length) {
return console.log(all_parts);
} else {
return console.log('waiting');
}
});
};
});
结果的执行console.log ...
{ 'this:that:a': { five: 'six', seven: 'eight' } }
{ 'this:that:a': { one: 'two', three: 'four' } }
我没有得到这是怎么回事,任何帮助非常感谢。
好的,我明白了。我在想'key'被传递到'redis.hgetall'作用域,然后回调函数会在这个范围内运行。 'redis.hgetall'不是一个函数,或者我错过了其他的AFA范围。 – boom
是的,但您需要在函数的作用域中定义变量,使其成为闭包的一部分。 –