关于vue项目中,在异步请求返回的数据赋值给全局变量却不生效的问题求解决!

1、在页面data中声明全局变量total1并赋值为1

img

2、在封装的请求方法中将返回的数据值赋值给全局变量total1。(res.totalrecords的值为8)

img

3、在created()中调用请求方法

img

4、在mounted()中打印全局变量total1。理论上此时total1的值应该为8,但此时打印出的值为1

img

img

这还用问吗?mounted先于created 执行,所以就是1了

已解决!不管是created还是mounted中调用的含有请求方法的函数都是异步的。而这里的console.log(this.total1)是属于同步任务,所有的异步任务需要等待所有同步任务执行完才会执行。所以实际上console.log(this.total1)是先于this.getImgList()执行,此时的total1的值为1。