具体代码如下:
(这是一段在vue框架的element-ui中操作table组件删除的回调函数,其中then后边的axios请求是为了利用数据响应式动态更新表格数据,想请问下有没有async、await的优化方案?)
deleteRow (row) {
this.$confirm('确认删除此条产品吗?删除后无法恢复', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.$axios
.post('/delProduct', {
id: row.id
})
.then(({ data }) => {
// 重新获取商品列表数据
this.$axios
.post('/getProducts', {
currentPage: 1
})
.then(({ data }) => {
this.changeTableData(data.result)
})
.catch((err) => console.log(err))
// 弹出提示
this.$message({
message: data.msg,
type: 'success'
})
})
.catch((err) => console.log(err))
})
.catch(() => {
this.$message({
message: '已取消“删除”的操作',
type: 'info'
})
})
}
async/await
本质是Promise
语法糖,只要出现Promise
的地方都可以改为用async/await
:对于
Promise.catch()
在async/await
中需要用try { ... } catch (e) { ... }
来替代。