解决 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)
            })
        }

 

posted @ 2023-11-16 21:02  笑而不语心自闲  阅读(1223)  评论(0编辑  收藏  举报