1、问题描述
今天在做数据绑定的时候,遇到一个问题,我很确定前端json数组中有很多数据,但是我将值绑定到el-select的option中的时候,总是没有数据,控制台输出之后发现,数组确实为空,但是为什么呢??? 还好,这问题别人也遇到了,因此超级惊喜,打开了新大陆。异步后发先到问题
2、问题分析
有两行代码:
第一行:给数组a赋值 //确定a有值,以及在前端显示了
第二行:在另一个函数将取出a中得值,全部push到b中 //打印为空
分析:代码肯定没有问题,但是为空,只有一个原因就是:给需要的数组赋值的代码提前运行了(也就是说在给b赋值的时候a里面一个)。官方说法:异步后发先到问题
我的解决方法是:给后发代码加一段延迟,确保按照顺序执行那两段代码。
setTimeout(() => {
// 在这里面插入必须在后面执行的代码
this.copyTableData() 将table数组的值copy到 另一个数组,里面打印两个数组
}, 500) // 0.5秒后执行代码
},
这样之后就能顺利绑定数据了,将数组打印出来也有值了。