1 回答

TA贡献1875条经验 获得超5个赞
当您 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)它将稍后打印出数组。该数组稍后在最终运行时填充。(所以 console.log 不是同步的——稍后它会打印出一些东西。)resultsconsole.log()
你可以试试
console.log(JSON.stringify(results));
并且您可能会看到一个空数组,因为JSON.stringify(results)立即评估它是什么并在当前时间将其转换为字符串,而不是稍后。
看起来您正在获取一些数据。正确的方法通常是通过回调或承诺的履行处理程序:
fetch(" some url here ")
.then(response => response.json())
.then(data => console.log(data));
因此,在调用回调或“履行处理程序”之前,您不会拥有数据。如果你console.log(results.length)当时,你应该得到正确的长度。(数据就在那里)。
添加回答
举报