我想从redis中获取所有值并将其存储在nodejs
中的数组中这是我现在的代码,
redisClient.keys("Serial*", function (err, keys) {
keys.forEach(function (key, i) {
redisClient.hgetall(key, function (err, currencyData) {
console.log(currencyData);
})
});
});
它允许我将所有值输出到控制台 但我需要使用这些值
答案 0 :(得分:1)
假设您需要数组中的currencyData -
function getAllCurrency(callback){
redisClient.keys("Serial*", function (err, keys) {
var allCurrencyData = [];
var counter = keys.length;
keys.forEach(function (key, i) {
redisClient.hgetall(key, function (err, currencyData) {
if(err)
return callback(err);
console.log(currencyData);
allCurrencyData.push(currencyData);
counter--;
if(counter == 0)
callback(null, allCurrencyData);
})
});
});
}
从另一个函数调用 -
getAllCurrency(function(err, allCurrency){
// use allCurrency array here
});
这不是最好的代码。此外,数组中元素的顺序可能与keys数组不同。要获得更好的异步控制,请尝试使用async库或Promises。