[英]Backfilling Highcharts chart with data from Ajax call
我正在尝试创建一个实时更新的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
的值。
我通过重组代码来解决这个问题。 我没有立即调用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
});
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.