[英]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.