Получение не может конвертировать undefined в объект при чтении из файла JSON - PullRequest
0 голосов
/ 26 мая 2019

Сценарий :

  • Файл json
  • Чтение данных и графика json с использованием старших диаграмм

Проблема: получение can't convert undefined to object при загрузке html без точки останова в Mozilla Firefox.

  • При загрузке с точкой останова график строится идеально.
  • без точки останова, получение myjson как не определено в функции chartFormyJson

Код : у меня есть проект узла, и я запускаю http server, используя npm run serve.

Index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="scriptFile.js"></script>
</head>
<body>
<div id="container" style="width:100%; height:400px;"></div>
</body>
</html>

scriptFile.js

var myjson;
fetch('./data.json').then(response => response.json()).then(data => {
    myjson=data["myjson"];
})

if( document.readyState !== 'loading' ) {
    console.log( 'document is already ready, just execute code here' );
    chartFormyJson();
} else {
    document.addEventListener('DOMContentLoaded', function () {
        console.log( 'document was not ready, place code here' );
        chartFormyJson();
    });
}

function chartFormyJson(){
var myChart = Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    title: {
        text: 'Plot bar graph per year'
    },
    yAxis: {
        title: {
            text: 'Count'
        }
    },
    xAxis: {
        categories: Object.keys(myjson)
    },
    series: [{
        data: Object.values(myjson)
    }]
});
}

Нужно руководство, почему так происходит. Кажется, что-то связано с загрузкой данных / переменных / порядка вызова js из html.ButЯ не специалист по этим вопросам, поэтому буду очень признателен за любую помощь по этому вопросу.

Дайте мне знать, если потребуется дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...