Node.js中是否可以嵌套Redis语句?

时间:2014-04-04 05:38:15

标签: javascript node.js redis node-redis nosql

我有以下代码,其中包含嵌套的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

但是,永远不会到达最后一个控制台日志语句。它几乎就像是在无限循环中......

知道怎么摆脱这个吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您的最终控制台日志不在redis调用之内。因此,当NodeJS异步调用redis LRANGE时会立即调用它。把它放在LRANGE回调中。