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
是的,但您需要在函數的作用域中定義變量,使其成爲閉包的一部分。 –