gpt4 book ai didi

javascript - 阵列的控制台日志为空

转载 作者:行者123 更新时间:2023-12-03 12:17:41 25 4
gpt4 key购买 nike

我有这两个代码示例:

没有1

const r = new Array();

for (i = 0; i < 5; i++) {
const vari = 'print';
r.push(vari);
}

console.log(r);

控制台日志是 [ 'print', 'print', 'print', 'print', 'print' ]

no2(使用cheerio进行抓取)

const sqft = new Array();
for (k = 0; k < links.length; k++) {
request(`${links[k]}`, (error, response, html) => {
const $ = cheerio.load(html);
const pr = $('div[class="df2 "]').first().text();
sqft.push(pr);
});
}
console.log(sqft);

在此之前,链接被推送到请求中。现在,当我使用 console.log(sqft) 时,我得到了 []。如果我在 for 循环中使用 console.log,它将显示数据。是 no1 和 no2 之间的区别还是 cheerio 有问题?谢谢!

最佳答案

看起来你有异步操作。所以我们需要使用asyncawait关键字让执行同步:

async function yourFunction() {
const sqft = new Array();
for (k = 0; k < links.length; k++) {
// here we are waiting for the promise to be resolved
let res = await request();
const $ = cheerio.load(res.html);
const pr = $('div[class="df2 "]').first().text();
sqft.push(pr);
}
}

关于javascript - 阵列的控制台日志为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65685334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com