简体   繁体   中英

Nodejs retrieve a variable

I would like to retrieve the variable "users" outside the function:

    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);
}

I use Q or async module, but I do not know how to do it..

thanks for your help .

The variable is in the scope of the use you have, which means that it can only be undefined if you've never given it a value (which you don't if you don't count the callback). Try using the line var users = "damn not yet"; and that's probably what you'll get in the console. That means that your callback function for lrange either isn't being called, or the logic is wrong.

something like this ?

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM