我在填写json文件时遇到问题,我现在不知道问题出在哪里,希望你帮助我。
<script type="text/javascript">
var d;
$.getJSON("empl-estab.json", function (data) {
d=data;
});
console.log(d);
var chart = Highcharts.chart('container', {
title: {
text: 'Statistiques'
},
subtitle: {
text: 'Plan'
},
xAxis: {
categories: d.categories,
},
series: [{
type: 'column',
colorByPoint: true,
data: d.data,
showInLegend: false
}]
});
</script>
错误是:d未定义
答案 0 :(得分:1)
将与response
结果相关的所有代码放在getJSON
的{{1}}函数中。发生这种情况是因为外部的所有代码都在请求完成之前执行。因此callback
未定义。
d
答案 1 :(得分:1)
这是由于GET请求的异步性质。您编写的代码在GET请求返回之前执行console.log
语句。您希望将逻辑放在返回文档后执行的回调函数中。
答案 2 :(得分:0)
此外,在async function
内部变量可以等待下载而不会出现问题:
async function load() {
//The await keyword will make the d variable wait for the json file
var d = await fetch('empl-estab.json').then(file => file.json());
//Now your d variable is avaliable
console.log(d);
}
load();