关于AJAX异步获取的bug
首先先贴上一张效果图如下,bug就是,实时获取的月份(10月,9月),刷新一下有时候显示,有时候不显示.
再来看看我写的获取时间的代码以及获取表中数据queryData的代码
修改前:
async mounted () {
this.queryData()//ajax获取echarts数据
this.theMonth = `${(await getLastMonth(this))}月`//获取本月(10月)
this.lastMonth = `${(await getLastMonth(this)) - 1}月`//获取上月(9月)
},
methods: {
async queryData () {
this.loading = true
let data = await this.$ajax({
method: 'get',
url: '/.../'
})
...........//与本题无关
}
}
不是代码问题,来看看我公司的组长发给我的一段话
就是
所有正确的顺序是:
async mounted () {
this.theMonth = `${(await getLastMonth(this))}月`//await:同步获取,会等待
this.lastMonth = `${(await getLastMonth(this)) - 1}月`
this.queryData()//等待获取theMonth,lastMonth 结束,再获取queryData
}
//......省略......
为什么要先获取时间呢?因为这个时间是要在queryData所在的图表中使用的,如果没有先加载时间的话,那么图表会出错…