繁体   English   中英

如何从回调函数访问外部变量?

[英]How to access outer variables from a callback function?

我在使用以下代码片段时遇到问题。 我无法从回调函数中访问userId ,并且我无法返回whitelistedUserIds是否包含userId 根据调试器,当我进入回调时, userId是未定义的。

谁有人解释为什么? 以及如何解决这个问题? 我已经离开javascript很长一段时间了...

function userInWhitelist(userFileName) {
  var userId = userFileName.replace('.txt', '');
  request({
    url: whitelistURL
  }, function(err, resp, body, userId) {
    if (resp.statusCode == 200) {
      var users = JSON.parse(body).data;
      var whitelistedUserIds = _.map(users, (user) => { return user.id; });
      // How to access userId ??
      // How to return whitelistedUserIds.includes(userId)
    }
  });

回调的userId正在遮蔽外部的。 只需从回调中删除userId

function userInWhitelist(userFileName) {
  var userId = userFileName.replace('.txt', '');
  request({
    url: whitelistURL
  }, function(err, resp, body) {
    if (resp.statusCode == 200) {
      var users = JSON.parse(body).data;
      var whitelistedUserIds = _.map(users, (user) => { return user.id; });
     // here you have access to userId
    }
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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