我使用node_redis模块来缓存评论,并且需要在新的批准时获得此评论。
从下面的Redis商店获取评论的功能:
var client = redis.createClient();
........
function getComments() {
client.keys("*", function (err, replies) {
var comments = [];
if (err) throw new Error('Redis error');
//console.log(replies.length + " replies:");
replies.forEach(function (reply, i) {
client.get(reply, function (err, value) {
if (err) throw new Error('Redis error');
//console.log(i+" " + reply + ": " + value);
comments[i] = value;
console.log(comments); //comments - not empty here
});
});
console.log(comments); //comments is empty here
client.quit();
});
}
评论中出现的问题。当forEach完成它的工作时,comments数组为空。如何为foreach添加回调以使用注释保存范围以获取此数组中的数据?