javascript - 图表始终为空
问题描述
我正在尝试将 Plotly 图表添加到我的网页。数据正在通过 SocketIO 发送到 Javascript,但图表为空。
我不明白为什么,因为数据被推送到arr
. 有什么建议吗?
var arr = [];
socket.on('two', function(msg) {
arr.push(msg.num)
console.log(arr)
});
Plotly.plot('chart',[{
y:[0],
type:'line'
}]);
var cnt = 0;
setInterval(function(){
Plotly.extendTraces('chart',{ y:[[arr]]}, [0]);
cnt++;
if(cnt > 500) {
Plotly.relayout('chart',{
xaxis: {
range: [cnt-500,cnt]
}
});
}
},15);
解决方案
Socket.io on() 函数是异步的。因此,Plotly 代码不会等待它完成,因此只接收一个空数组作为其数据。在通过 Socket.io 发出远程数据请求之前尝试实例化您的 Plotly 图,然后在 on() 方法的响应函数中更新图。
推荐阅读
- spring - 传递 Webflux Http 错误
- angular - Template Variable Causing Template Parse Error: There is no directive with "exportAs" set to "#start_date"
- javascript - 气泡组件 Angular
- r - mutate_impl(.data, dots) 中的错误:评估错误:参数 2 必须是类型字符
- dart - Flutter - 是否可以在不使用 FutureBuilder 的情况下从 Future 中提取数据?
- java - 尽管已添加到视图中,但片段未显示
- php - 如何检测 file_get_contents 正在返回 gzip 压缩的内容
- c# - AddConfiguration 哪里来的?
- ruby-on-rails - 防止某些页面上的 HTML 缓存
- kotlin - 如何在 KotlinPoet 中实现 Comparable?