解决 Vue 出现 Uncaught (in promise) cancel 错误提示
confirm运行时,如果不加.catch捕获,会出现错误提示,解决办法:
方法1:
vue.config.js中 关闭全局错误提示
module.exports = defineConfig({
transpileDependencies: true,
lintOnSave: false,
devServer: {
open: false, // 编译完成是否自动打开网页,true为自动打开,false为不打开
host: "0.0.0.0", // 指定使用地址,默认localhost,0.0.0.0代表可以被外界讯问
port: 8080, // 访问端口
client: {
overlay: false // 关闭全局错误提示
},
proxy: { // 代理跨域
[process.env.VUE_APP_API]: {
// '/devApi': {
target: process.env.VUE_APP_DEV_TARGET, // (必选)API服务器的地址
// target: 'http://www.py32api.com:8000', // (必选)API服务器的地址
changeOrigin: true, // (必选)是否允许跨域
ws: false, // (可选)是否启用websockets
secure: false, // (可选)是否启用https接口
pathRewrite: { // (可选)请求路径重写
[`^${process.env.VUE_APP_API}`]: "" //匹配开头为.env中定义的环境变量的字符串,并替换成空字符串,ES6的写法
// '^/devApi': "" //匹配开头为.env中定义的环境变量的字符串,并替换成空字符串,ES6的写法
}
}
}
}
});
方法2:
自定义方法中,加入catch
const handlerDeleteConfirm = () => {
proxy.$confirm('确认删除该分类吗?删除后将无法恢复', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
showClose: false, // 取消右上角的“关闭”图标
closeOnClickModal: false, // 取消单击遮罩层关闭 MessageBox
closeOnPressEscape: false, // 取消按下“Esc“键关闭 MessageBox
type: 'warning',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
instance.confirmButtonLoading = true;
CategoryDel({
categoryID: data.parent_category_data.data.id
}).then(response => {
// 成功提示
proxy.$message.success(response.message)
instance.confirmButtonLoading = false;
done();
}).catch(error => {
proxy.$message.error(error)
instance.confirmButtonLoading = false;
})
} else {
done();
}
}
}).catch(error => { // 错误捕获
console.log(error)
})
}