解决 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)
})
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具