Заполнение диаграммы Highcharts данными из вызова Ajax - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь создать динамически обновляемую диаграмму Highcharts для мониторинга параметров, и я хотел бы также заполнить эту диаграмму данными с сервера MySQL.

В настоящее время у меня есть эта функция, которая вызывается в chart.events.load, которая (надеюсь, в конечном итоге) добавляет серию к диаграмме с данными SQL:

function _initSeries(chart) {
    chart.addSeries({
        name: 'series1',
        data: (function() {
            // backfill data from MySQL
            let sqlData = [];

            _getMySqlData(function(result) {
                for (let i = 0; i < result.length; i += 1) {
                    sqlData.push({
                        x: result[i].milliseconds,
                        y: result[i].value
                    });
                }

                // preferrably I would return sqlData here but obviously that won't work
            });
            // return must be on this level
        }())
    });
}

Функция для извлечения данных из базы данных MySQL работает правильно, и возвращает массив значений, которые я хочу передать на sqlData и вернуть. Очевидно, я не могу вернуться, потому что нахожусь в обратном вызове, но тогда я не уверен, как установить значение data из обратного вызова.

1 Ответ

0 голосов
/ 03 июля 2018

Я понял это путем реструктуризации своего кода; вместо того, чтобы сразу звонить chart.addSeries(), я позвонил getMySqlData(). В обратном вызове я смог использовать результат getMySqlData() в chart.addSeries().

function _initSeries(key, chart) {
    _getMySqlData(key, function(result) {
        let sqlData = [];
        for (let i = 0; i < result.length; i += 1) {
            sqlData.push({
                x: result[i].milliseconds,
                y: result[i].value
            });
        }
        chart.addSeries({
            name: key,
            data: sqlData
        });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...