2017-04-10 36 views
-1

我试图访问变量“onlinehub”和“offlinehub”for循环外,但变量只打印初始声明值。有没有其他方法可以做到这一点?如何获取Nodejs中循环外部的变量

app.get('/test', function(req, res) { 
    client.keys('hub*', function (err, keys) { 
    console.log(keys.length); 
    for (var i=0; i<keys.length; i++){ 
    client.hgetall(keys[i], function(err, reply) { 
    if(reply.status == "online"){ 
     onlinehub++; 
    } 
    else if(reply.status == "offline"){ 
     offlinehub++; 
    } 
    }); 
    } 
    // for (var i=0; i<reply.length; i++){ 
    // console.log(reply.id) 
    // } 
    console.log(onlinehub +"-" +offlinehub) 

    }); 
}); 

回答

-1

您可以创建两个全局变量并为它们分配一个onlinehub值,并在for循环之外使用它们。

var global_onlinehub=0; 
var global_offlinehub=0; 
app.get('/test', function(req, res) { 
client.keys('hub*', function (err, keys) { 
console.log(keys.length); 

for (var i=0; i<keys.length; i++){ 
client.hgetall(keys[i], function(err, reply) { 
if(reply.status == "online"){ 
global_onlinehub= onlinehub++; 
} 
else if(reply.status == "offline"){ 
    global_offlinehub=offlinehub++; 
} 
}); 
} 
// for (var i=0; i<reply.length; i++){ 
// console.log(reply.id) 
// } 
console.log(global_onlinehub +"-" +global_offlinehub) 

}); 
});