Nodejs检索变量

时间:2013-05-10 09:37:24

标签: javascript node.js var

我想在函数外检索变量“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);
}

我使用Qasync模块,但我不知道该怎么做..

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

变量属于您的使用范围,这意味着如果您从未给它赋值(如果您不计算回调则不会),它只能是未定义的。尝试使用行var users = "damn not yet";,这可能是你在控制台中得到的。这意味着您的lrange回调函数未被调用,或逻辑错误。

答案 1 :(得分:0)

这样的事情?

getcomptes = function(callback){
    client.lrange('comptes', 0, -1, function(err, users){
            callback(err, users);
    });
};