// 删除
const del = (id : number) => {
// 定义公共变量
let listLength = -1;
// 删除前先去查当前页还有几条数据
let myPromise = new Promise((resolve => {
axios.get("/album/list", {
params: {
page: pagination.value.current,
size: pagination.value.pageSize
}
}).then((response) => {
const data = response.data;
if(data.success){
listLength = data.content.list.length;
resolve("list已执行"); //successMessage
}
});
}))
// 如果拿到查询数据,再去删除,否则listLength还是-1
myPromise.then((successMessage) =>{
axios.delete("/album/delete/" + id).then(response => {
if (response.data.success){
console.log("list已执行", successMessage);
console.log(listLength);
// 删除成功后重置page, 再去刷新列表
const current = pagination.value.current;
const page = (listLength == 1) ? current - 1 : current;
// 刷新列表
handleQuery({
page: page,
size: pagination.value.pageSize
});
}
})
})
};
我按照老师的思路,把删除函数修改了一下,用到了promise,可以解决这个BUG
如果有同学有更好更简洁的解决方案也欢迎指正和分享。