我最近在Node JS中尝试了request-promise模块,由于某种原因,当我在请求中的函数中定义全局变量,并尝试在函数外部使用变量时,未定义变量的参考错误。问题是,我确实已经定义了变量,并且将其设置为全局变量,所以我不明白为什么会收到此错误。这是发生它的代码:
function kithCheckoutLink(size, link, amount){
xml = link + '.xml'
console.log(xml)
rp.get({uri: xml, headers: {'User-Agent': useragent}}, function(err, resp, body){
var soup = new jssoup(body);
var producttag = soup.find('title');
var productname = (producttag.text);
console.log(productname);
var sizetag = soup.find('title', undefined, size);
var varianttag = sizetag.parent.find('id', attrs={'type':'integer'});
var variant = varianttag.text;
console.log(variant);
//THIS IS THE VARIABLE THAT I'M HAVING TROUBLE WITH
global.atclink = 'https://www.kith.com/cart/' + variant + amount
})
global.cookiejar = rp.jar()
//THIS REQUEST GIVES ME THE ERROR
rp.get({uri:atclink, headers:{'User-Agent':useragent}, followAllRedirects: true, json: true, jar: cookiejar}, function(err, resp, body){
if (err != undefined){
console.log(err)
}
else{
console.log(resp.request.uri.href)
}
})
}
为什么会出现错误?即使变量是在函数中定义的,但我还是将其设置为全局变量,所以我仍然不能使用它吗?