gpt4 book ai didi

javascript - 控制台中存在完整数组,但 array.length = 0

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

我试图理解为什么当我将 axios 调用的结果分配给变量时,控制台日志记录所述变量将显示完整的对象,但控制台其长度返回零。

因此,当我尝试对结果运行 forEach 时,没有任何乐趣。

getNumberOfCollections() {
let results = queries.getTable("Quality"); // imported function to grab an Airtable table.
console.log(results); // full array, i.e. ['bing', 'bong', 'boom']
console.log(results.length); // 0
results.forEach((result) =>{ // no love });
}

最佳答案

当您对数组进行 console.log 时,该数组很可能仍为空。

console.log(results); // full array, i.e. ['bing', 'bong', 'boom']
console.log(results.length); // 0

console.log(results.length)运行时,它正在执行 console.log(0)这就是为什么0打印出来。

何时 console.log(results)运行后,将会打印出 results稍后阵列。该数组稍后会在 console.log() 时填充终于跑了。 (所以 console.log 不是同步的——它稍后会打印一些东西。)

你可以试试

console.log(JSON.stringify(results));

你可能会看到一个空数组,因为 JSON.stringify(results)立即评估它是什么,并将其变成一个字符串在当前时间,而不是稍后

您似乎正在获取一些数据。正确的方法通常是通过回调或 promise 的履行处理程序:

fetch(" some url here ")
.then(response => response.json())
.then(data => console.log(data));

因此,在调用回调或“履行处理程序”之前,您不会获得数据。如果您console.log(results.length)那时,你应该得到正确的长度。 (数据就在那里)。

关于javascript - 控制台中存在完整数组,但 array.length = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60795931/

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