推送到在回调中不起作用的数组
Pushing to an array not working in callback
查看代码中的注释以了解 happening/not 实际发生了什么。基本上在函数内, array.push() 方法似乎不起作用,我无法理解为什么。任何帮助将不胜感激。
var locationArray = new Array;
request(process.env.RESOURCE_SHEET, (error, response, html) => {
if(!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$("h3").each((i, lle) => {
const location = $(lle).text();
if(location.includes("Kansas")) return;
if(location.includes("In Stock")) {
var level = location + " ✅";
} else {
var level = location + " ❌";
}
locationArray.push(level); // This doesn't push to the array
});
}
});
locationArray.push("test") // This pushes to the array
console.log(locationArray) // Output: "test"
感谢 Harsh Saini。
他的回复:request
异步工作,你应该尝试在请求回调中控制数组。
工作代码:
var locationArray = new Array;
request(process.env.RESOURCE_SHEET, (error, response, html) => {
if(!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$("h3").each((i, lle) => {
const location = $(lle).text();
if(location.includes("Kansas")) return;
if(location.includes("In Stock")) {
var level = location + " ✅";
} else {
var level = location + " ❌";
}
locationArray.push(level);
});
}
console.log(locationArray)
});
查看代码中的注释以了解 happening/not 实际发生了什么。基本上在函数内, array.push() 方法似乎不起作用,我无法理解为什么。任何帮助将不胜感激。
var locationArray = new Array;
request(process.env.RESOURCE_SHEET, (error, response, html) => {
if(!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$("h3").each((i, lle) => {
const location = $(lle).text();
if(location.includes("Kansas")) return;
if(location.includes("In Stock")) {
var level = location + " ✅";
} else {
var level = location + " ❌";
}
locationArray.push(level); // This doesn't push to the array
});
}
});
locationArray.push("test") // This pushes to the array
console.log(locationArray) // Output: "test"
感谢 Harsh Saini。
他的回复:request
异步工作,你应该尝试在请求回调中控制数组。
工作代码:
var locationArray = new Array;
request(process.env.RESOURCE_SHEET, (error, response, html) => {
if(!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$("h3").each((i, lle) => {
const location = $(lle).text();
if(location.includes("Kansas")) return;
if(location.includes("In Stock")) {
var level = location + " ✅";
} else {
var level = location + " ❌";
}
locationArray.push(level);
});
}
console.log(locationArray)
});