问题遇到的现象和发生背景
给rule的valid函数加防抖后,Promise.reject仅仅会在控制台打印,不会在页面上弹出提示
问题相关代码,请勿粘贴截图
bucketNameRules() {
const valid = (rule, value) =>
new Promise((resolve, reject) => {
const reg = /^(?![-])[a-z0-9-]{3,63}(?<![-])$/
if (value.length < 1) {
return reject('名称不能为空')
}
if (value.length < 3 || value.length > 63) {
reject('请输入 3~63 个字符')
} else if (!reg.test(value)) {
reject('允许小写字母、数字、短横线(-),且不能以短横线开头或结尾')
}
// 调用接口查询是否重复
bucketNameCheck({
bucketName: value
}).then((res) => {
if (res.available) {
resolve()
} else {
reject('该Bucket已存在,或被其他用户占用')
}
})
})
return { validator: debounce(valid, 800, false), trigger: 'change', required: true }
},
运行结果及报错内容
Uncaught (in promise) ...
求大家帮忙解决!!