vue3 reruen false 返回之后,代码继续执行

1.产生原因代码

const login = async () => {
	state.loading.signIn = true;
	//验证账号密码是否存在
	await loginSumit(state.ruleForm).then(res => {
		if (!res.state) {
			wmpWarn(res.message);
			state.loading.signIn = false;
			return false;
		} else {
			// 存储 token 到浏览器缓存
			Session.set('token', res.data);
		}
	});
	console.log("+++")
}

代码走完 return false之后,又向下执行console.log("+++")

由于是vue新手,个人分析与async、await有关系,也可能与Promise有关系。

解决办法:

定义一个boolean变量,在函数外捕捉变量值,如果为false,则推出。这种方法生效

上代码:

	   const loginflag = ref(false);
		const login = async () => {
			state.loading.signIn = true;
			//验证账号密码是否存在
			await loginSumit(state.ruleForm).then(res => {
				if (!res.state) {
					wmpWarn(res.message);
					loginflag.value = res.state;
					state.loading.signIn = false;
				} else {
					// 存储 token 到浏览器缓存
					Session.set('token', res.data);
				}
			});

          // 此处就会阻止代码继续向下执行
			if (!loginflag.value) {
				return false;
			}
           ...............
     }

以上是我遇到的问题,也是我个人的解决方案。如果有其他小伙伴知道什么原因造成的或者有更好解决方案,请评论区上详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mhi()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值