场景:
vue-cli3 + vant
问题描述
使用了Dialog异步关闭的官方示例, 点击取消时, 控制台报错 Uncaught (in promise) cancel, 不影响一般用户使用, 但是看着不舒服
function beforeClose(action, done) {
if (action === 'confirm') {
setTimeout(done, 1000);
} else {
done();
}
}
Dialog.confirm({
title: '标题',
message: '弹窗内容',
beforeClose,
});
原因分析:
confirm使用了promise, 需要在confirm后加catch, 否则无法捕获错误
解决方案:
function beforeClose(action, done) {
if (action === 'confirm') {
setTimeout(done, 1000);
} else {
done();
}
}
Dialog.confirm({
title: '标题',
message: '弹窗内容',
beforeClose,
}).catch(() => {});
在Vue CLI 3搭建的项目中,使用Vant 2的Dialog弹出框组件时遇到点击取消按钮报'Uncaught (in promise) cancel'的错误。该错误是因为在调用confirm时没有处理Promise的catch,导致未捕获的异常。为解决此问题,需要在使用confirm方法后添加catch块来捕获并处理可能出现的错误。
2万+

被折叠的 条评论
为什么被折叠?



