- 当前 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 的内部的异常可以捕获,方法内的捕获不到。。
是唉,到处是坑
突然觉得这个问题有点可爱怎么办?