我有以下代码,其中包含嵌套的redis语句
var objList =new Array();
//Hardcoded key
client.LRANGE("user4feed","0","-1",function(err,user){
user.forEach(function (reply, i) {
//console.log(" " + i + ": " + reply);
client.HGETALL('photo:'+reply,function(err,user){
var test = user; //Cant go array directly, will say 'user' is undefined
objList.push(test);
})
});
console.log("List length = "+user.length);
})
console.log("objList= "+objList); //This is never reached
但是,永远不会到达最后一个控制台日志语句。它几乎就像是在无限循环中......
知道怎么摆脱这个吗?
谢谢
答案 0 :(得分:1)
您的最终控制台日志不在redis调用之内。因此,当NodeJS异步调用redis LRANGE
时会立即调用它。把它放在LRANGE
回调中。