项目问题:通过websocket与后端进行通信时,接收后端返回数据的顺序是打乱的或者上一秒传输的是心跳值,下一秒传输的是数据值,这个时候利用索引进行数据分割截取在渲染到页面上,就会出现一会数据显示心跳值一会显示真正的数据。
解决方法:在methods内写一个自动根据字段名称查找对应数据的方法,然后将这个查找数据的方法带入到你要获取数据的代码内。
看代码
var num = e.data.split(",",20) // 这个用来截取后端返回数据
if(num[0].includes("value")){ // 这个value值是你要截取数据对应字段的名称
this.aa = this.searchValue("value1",num);
this.bb= this.searchValue("value2",num);
this.cc= this.searchValue("value3",num);
this.dd= this.searchValue("value4",num);
// this.aa this.bb this.cc this.dd 是你要渲染的方法 不过这个要看你自己真实数据
};
// 这个是根据后端返回数据字段名称进行数据查找赋值
searchValue(val,value){
// for循环中index要从你截取的第一个数据的索引开始,你要截取第一个数据索引为10 则index=10
for(let index = 1; index < 6; index++){
const element = value[index];
if(element.split("=")[0].includes(val){
return Number(element.split("=")[1].replace(/'|}/g,""));
}
}
}