Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js&;Redis:前一个Redis请求中的另一个Redis请求';让我们回电话_Node.js_Redis - Fatal编程技术网

Node.js&;Redis:前一个Redis请求中的另一个Redis请求';让我们回电话

Node.js&;Redis:前一个Redis请求中的另一个Redis请求';让我们回电话,node.js,redis,Node.js,Redis,我希望有一些经验丰富的Redis开发人员可以向我解释这背后的逻辑 我有一个集合作为钥匙,我能够用这个代码拉动集合中存储的所有对象 redisClient.smembers("student_list", function(err,result){ if(err) console.log(err); else { list = result; console.log(result);

我希望有一些经验丰富的Redis开发人员可以向我解释这背后的逻辑

我有一个集合作为钥匙,我能够用这个代码拉动集合中存储的所有对象

redisClient.smembers("student_list", function(err,result){
        if(err)
            console.log(err);
        else {
            list = result;
            console.log(result);
        }
    });
这很好,但是这个集合包含学生的id,在另一个redis db中,我用学生的信息(JSON字符串)映射了id。但是,当我在console.log(result)之后放入一个函数时,它不会运行第二个Redis查询,该查询会获取所有学生的信息。我写得像

for(var i = 0; i < list.length; i++){
        console.log(i);
        redisClient.get(list[i],function(err,student){
            if(err)
                console.log("An error occured: "+err);
            else
                console.log(JSON.parse(student));
        });
    }
PS2:完整代码,以防万一

redisClient.smembers("student_list", function(err,result){
        if(err)
            console.log("Err: " + err);
        else {
            list = result;
            console.log(result);

            for(var i = 0; i < list.length; i++){
                console.log(i);
                redisClient.get(list[i],function(err,student){
                    if(err)
                        console.log("An error occured: "+err);
                    else
                        console.log(JSON.parse(student));
                });
            }

        }
    });
redisClient.smembers(“学生列表”,函数(err,result){
如果(错误)
console.log(“Err:+Err”);
否则{
列表=结果;
控制台日志(结果);
对于(变量i=0;i
在“学生名单”的结果中是什么?您可以拥有多少嵌套回调是没有限制的,您想做的就是人们想做的。奇怪。在学生列表中发布完整代码?结果:
['5072a3e59d745ba2a2000002','5072A3DC9D745BA2A200001']
在谷歌上搜索错误。看来redis2.6可能会解决这个问题(升级!)。另外,请听redisClient上的错误事件。@japrescott我在这里写作之前确实搜索过它。我下载了2.6(它安装了2.5.14,2.6的候选版本),但它仍然给我同样的错误。如果您有任何代码包含Redis中的嵌套函数,请与我们分享好吗?我没有可以分享的示例。但是结帐
redisClient.smembers("student_list", function(err,result){
        if(err)
            console.log("Err: " + err);
        else {
            list = result;
            console.log(result);

            for(var i = 0; i < list.length; i++){
                console.log(i);
                redisClient.get(list[i],function(err,student){
                    if(err)
                        console.log("An error occured: "+err);
                    else
                        console.log(JSON.parse(student));
                });
            }

        }
    });