Javascript Smoothie.js图表无法处理JSON数据

Javascript Smoothie.js图表无法处理JSON数据,javascript,jquery,html,live-streaming,smoothie.js,Javascript,Jquery,Html,Live Streaming,Smoothie.js,下面是实现Smoothie.js实时流媒体图表的HTML文档。timeSeries.append()和getJSON()方法本身工作得非常好,但timeSeries.append()似乎不允许JSON数据值 程序被困在count()函数中;我添加了一个document.write()方法,以查看它是否会输出(见下文),但它没有输出 我想可能是因为JSON数据。解析时,将是一个字符串。所以我把数据变成一个字符串,然后是一个int 但那没用 我一直在试验,没有什么能像我所需要的那样有效 单击以打

下面是实现Smoothie.js实时流媒体图表的HTML文档。timeSeries.append()和getJSON()方法本身工作得非常好,但timeSeries.append()似乎不允许JSON数据值

程序被困在count()函数中;我添加了一个document.write()方法,以查看它是否会输出(见下文),但它没有输出

我想可能是因为JSON数据。解析时,将是一个字符串。所以我把数据变成一个字符串,然后是一个int

但那没用

我一直在试验,没有什么能像我所需要的那样有效


单击以打开live PeopleCount图表
div.smoothie-chart-tooltip{
背景:#999;
填充:1em;
边缘顶部:20px;
字体系列:consolas;
颜色:白色;
字号:17px;
指针事件:无;
}
var图表=新的SmoothieChart({
插值:'步',
网格:{
填充样式:“#ffffff”,
strokeStyle:“#C0C0”,
垂直断面:10
},
标签:{
填充样式:'#000000',
尺寸:16,
精度:0
},
提示:正确,
最大值:10,
最小值:0,
timestampFormatter:SmoothieChart.timeFormatter
}),
timeSeries=新的timeSeries();
图表.addTimeSeries(timeSeries{
strokeStyle:“蓝色”,
线宽:1,
填充样式:“rgba(0128255,0.30)”
});
函数计数(){
$.getJSON(“http://192.168.20.193:8001/count,函数(结果){
temp=result.data.count;
});
文件。填写(“hi”);
temp=parseInt(temp,10);
返回温度;
}
函数myFunction(){
chart.streamTo(document.getElementById('chart'),100);
setInterval(函数(){
append(newdate().getTime(),count());
}, 5000);
}
无功温度;
count()
正在返回
未定义的
,因为
$.getJSON
是异步的,您正在返回
temp
,然后在回调中设置它。我会将count()重写为

function count(callback) {
    $.getJSON("http://192.168.20.193:8001/count", function(result) {
        return callback(parseInt(result.data.count, 10));
    });
}
现在您有了一种方法,可以知道何时
count(…)
完成(何时调用回调函数)

然后我会重写你所说的

setInterval(function() {
    count(function(temp){
        timeSeries.append(new Date().getTime(), temp);
    })
}, 5000);
这样做可以确保您在设置图表上的数据之前,等待对服务器的请求完成。如果您想了解更多信息,我建议您在谷歌上搜索“异步”