一、错误代码示例(逻辑代码,非所有代码)
//引入接口方法
import {getData} from '@/api/getData';
//定义并获取数据
let optionData =[];
getData().then((res)=>{
optionData = res.data
})
//定义option
let option ={
...
dataset:{
source:optionData
}
}
//挂载后渲染
onMounted(()=>{
let myChart = echarts.init(piePolyline.value)
myChart.setOption({})
})
echarts图表并未渲染,原因是访问接口是异步的,渲染后数据才获取到
二、解决:使用async await
步骤: 封装接口->async 访问接口后,await获取到数据 -> 处理数据->再初始化图表与定义option->setOption
挂载后,访问所封装的接口即可
//引入接口方法
import {getData} from '@/api/getData';
//定义并获取数据
let optionData =[];
//封装接口
async function getDatas(){
optionData = await getData().then((res) => {
return res.data.result
},
(err) => {
return err
},)
//处理optionData
//渲染echart
setChart(optionData)
}
//封装方法,渲染option
function setChart(data){
let myChart = echarts.init(piePolyline.value)
myChart.setOption({
...
dataset:{
source:optionData
}
})
}
//挂载后渲染
onMounted(()=>{
getDatas()
})