javascript - Nodejs 检索变量

标签 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模块,但我不知道该怎么做..

感谢您的帮助。

最佳答案

该变量在您所使用的范围内,这意味着只有您从未给过它一个值(如果您不计算回调,则不会给它一个值),它才可能是未定义的。尝试使用 var users = "damn not Yet"; 行,这可能就是您在控制台中得到的内容。这意味着 lrange 的回调函数要么没有被调用,要么逻辑错误。

关于javascript - Nodejs 检索变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16479285/

相关文章:

javascript - 如何使用 javascript 更改表单中 var 的值

c# - 为什么使用 var 而不是类名?

javascript - JavaScript 数组初始化之前的 "var"指的是什么,是列表的元素还是数组本身?

javascript - jQuery delegate() 不适用于 $(this)

javascript - 使用 Mechanize 获取 JavaScript 变量

node.js - 如何为reveal.js 设置我的socket.io 服务器?

javascript - setInterval 似乎不喜欢它调用的函数中的 () 。为什么?

javascript - 将坐标转换为以像素为单位的 CSS 固定定位

javascript - 使用 ng-content 选择基类

javascript - 使用 Passport.js 的 if 语句出现意外结果