// 车位数 this.$axios({ url: "/parking/getParkData", method: "get", params: { parkname: this.code[i], currPage: "0", pageNum: "4", }, }).then((res) => { // console.log(res) this.parkData[i + 1].push(this.code[i] + "区车位"); this.parkData[i + 1].push(res.data.total); this.handleParkEcharts(); }); // 已分配量 this.$axios({ url: "/parking/getParkData", method: "get", params: { parkname: this.code[i], parkstatus: "1", currPage: "0", pageNum: "4", }, }).then((res) => { // console.log(res) this.parkData[i + 1].push(res.data.total); this.handleParkEcharts(); });
时间: 2024-02-10 07:09:02 浏览: 60
前端插件vue+elementui+axios
5星 · 资源好评率100%
这段代码使用了 Axios 库来发送 GET 请求获取停车场数据,并在请求成功后处理数据和更新图表展示。其中,使用了 Promise 对象的 then() 方法来处理异步操作,可以考虑使用 async/await 来简化代码,使其更易读和维护。
重构后的代码如下:
```javascript
async function getParkData(url, params) {
try {
const response = await axios.get(url, { params });
return response.data.total;
} catch (error) {
console.error(error);
return 0;
}
}
async function updateParkData(code, i) {
const parkname = code[i];
const currPage = "0";
const pageNum = "4";
const total = await getParkData("/parking/getParkData", { parkname, currPage, pageNum });
this.parkData[i + 1].push(this.code[i] + "区车位", total);
const allocated = await getParkData("/parking/getParkData", { parkname, parkstatus: "1", currPage, pageNum });
this.parkData[i + 1].push(allocated);
this.handleParkEcharts();
}
// 调用新的方法
updateParkData(this.code, i);
```
在重构后的代码中,将获取停车场数据的操作封装为一个 async 函数 getParkData(),该函数返回一个 Promise 对象。然后,使用 await 关键字等待该 Promise 对象的完成,获取数据并处理。最后,使用 async 函数 updateParkData() 组合两个异步操作,更新数据和图表展示。
重构后的代码更加简洁、易读和易维护,同时也更符合异步编程的最佳实践。
阅读全文