我在使用以下代码段时遇到问题。我无法从回调函数中访问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)
}
});
答案 0 :(得分:4)
回调' 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
}
});