优化这段代码 async handleConfirm() { if (this.formData.password && this.formData.new_password && this.formData.confirm_password) { if (this.formData.new_password == this.formData.confirm_password) { const { code } = await $editPassword(this.formData); if (code == 200) { uni.$u.toast("修改成功"); setTimeout(() => { uni.reLaunch({ url: "/pages/login/index" }); }, 500) } } else { uni.$u.toast("两次输入不一致"); } } }
时间: 2024-01-27 12:05:50 浏览: 130
可以优化的地方有:
1. 首先可以将表单字段的判断提前,这样可以避免不必要的请求和操作:
```
async handleConfirm() {
if (!this.formData.password || !this.formData.new_password || !this.formData.confirm_password) {
return uni.$u.toast("请填写完整信息");
}
if (this.formData.new_password !== this.formData.confirm_password) {
return uni.$u.toast("两次输入不一致");
}
const { code } = await $editPassword(this.formData);
if (code === 200) {
uni.$u.toast("修改成功");
setTimeout(() => {
uni.reLaunch({
url: "/pages/login/index"
});
}, 500);
}
}
```
2. 在请求返回时可以使用 Promise.allSettled() 方法,这样可以保证请求全部完成,而不会因为某个请求失败而导致操作失败:
```
async handleConfirm() {
if (!this.formData.password || !this.formData.new_password || !this.formData.confirm_password) {
return uni.$u.toast("请填写完整信息");
}
if (this.formData.new_password !== this.formData.confirm_password) {
return uni.$u.toast("两次输入不一致");
}
const [res] = await Promise.allSettled([$editPassword(this.formData)]);
if (res.status === "fulfilled" && res.value.code === 200) {
uni.$u.toast("修改成功");
setTimeout(() => {
uni.reLaunch({
url: "/pages/login/index"
});
}, 500);
} else {
uni.$u.toast("修改失败");
}
}
```
以上两种优化方式可以提高代码的可读性和性能。
阅读全文