mounted(){
 this.getDevieces(this.name)//触发actions中getDevieces获取全部信息
 this.tableData2 = this.devices//这里拿不到state中的devices
}

上述这么写,代码是这么执行的:

页面挂载完成后触发actions中getDevieces获取全部信息,接着给tableData2赋值,但是这时候的devices为undefined。 但是却在打印时能看到devices有值。

原因:触发actions请求接口,获取到全部信息触发mutations更改state,这时候的确state中数据发生了变化,打印是能够拿到改变到值,但是由于Promise是异步的!!

所以第一句的执行不会影响第二句

意思是:第一句改变了state,但是第二句触发的时候,state并未改变,所以拿不到值。其实也就是个同步异步的问题

同步:一个窗口,就像排队打饭,不能插队,一个人打完饭了再到另一个去

异步:N个窗口,你打你的饭,我打我的饭,不会相互影响

还有异步方式以同步表现:ES6的generator函数,ES7的async,await

贴下能正确执行拿到值到代码:


爬。