我想在函数外检索变量“users”:
var users;
client.lrange("comptes", 0, -1, function(err, replies) {
replies.forEach(function(reply, i) {
users = JSON.parse(reply.toString());
});
});
// here to retrieve the "users" variable
console.log(users); // = undefined
function findById(id, fn) {
var idx = id - 1;
if (users[idx]) {
fn(null, users[idx]);
} else {
fn(new Error('User ' + id + ' does not exist'));
}
}
function findByUsername(username, fn) {
for (var i = 0, len = users.length; i < len; i++) {
var user = users[i];
if (user.username === username) {
return fn(null, user);
}
}
return fn(null, null);
}
感谢您的帮助。
答案 0 :(得分:0)
变量属于您的使用范围,这意味着如果您从未给它赋值(如果您不计算回调则不会),它只能是未定义的。尝试使用行var users = "damn not yet";
,这可能是你在控制台中得到的。这意味着您的lrange
回调函数未被调用,或逻辑错误。
答案 1 :(得分:0)
这样的事情?
getcomptes = function(callback){
client.lrange('comptes', 0, -1, function(err, users){
callback(err, users);
});
};