我在Javascript中有这段代码:
var words = [];
d3.json("myFile.json", function(data) {
words = data.words;
console.log(words); //Log output to console
});
console.log(words); //Log output to console
第一个console.log(words);
显示七个对象的数组。
但第二个console.log(words);
显示一个空数组。因此看起来words
函数之外的d3.json
与该函数内的words
不同。
我也尝试在函数外使用console.log(window.words);
,它仍然显示一个空数组。
如何从myFile.json
函数中获取我在d3.json
函数中读取的数据?
答案 0 :(得分:3)
d3.json
是一个异步函数。这意味着您传递的代码不会立即执行,而是在JSON文件请求返回后作为回调执行。也就是说,为文件发送网络请求,但正常的执行流程仍在继续。
console.log(words);
外部d3.json
只是在调用返回之前执行并填充数组。