У меня есть часть более крупного хэш набор с той же конвенции:Получение списка ключей от 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' } }
Я не понимаю, что происходит, любая помощь оценивается.
Хорошо, я вижу. Я думал, что «ключ» передается в область «redis.hgetall», а затем обратный вызов будет работать в этой области. Является ли 'redis.hgetall' не функцией, или я пропускаю что-то еще в AFA. – boom
Да, но вам нужно определить переменную в объеме функции, чтобы она была частью закрытия. –