- 当前 Bug 的表现(可附上截图)
在form submit回调方法中,调用表单验证方法,无法捕获验证方法内抛出的异常?同步调用为什么会出现这么诡异的问题?
现在我只能改成 rerturn new Error() 再由上层判断处理
代码:
// 校验表单 validateContact (contact) { if (contact.name == '') { throw new Error('请填写联系人姓名') } if (contact.phone == '') { throw new Error('请填写联系电话') } if (!/^\d+-?\d+$/.test(contact.phone)) { throw new Error('电话格式错误,必须是xxx-xxxxxxxx或者1xxxxxxxxxx格式') } if (contact.province == '' || contact.city == '' || contact.county == '') { throw new Error('请选择省市区') } if (contact.address == '') { throw new Error('请填写详细地址') } }, // 提交表单 submit (e) { try { this.validateContact(this.data.formdata) } catch (e) { return } wx.showLoading() api.profile.updateAddress(this.data.formdata).then(res => { wx.hideLoading() wx.showToast({ title: '保存成功', duration: 1500, success: function () { setTimeout(function () { wx.navigateBack() }, 1500) } }) }).catch(e => { wx.hideLoading() console.error('保存地址失败:', e) util.alert('保存失败:' + e.message) }) } |

是有这个问题,以前也有人提过。。直接try 的内部的异常可以捕获,方法内的捕获不到。。
是唉,到处是坑
突然觉得这个问题有点可爱怎么办?