1.代码如下图:a.注册页里b."getUserInfo" 函数2.问题在于:有时候 this.$store.dispatch('getUserInfo')还没有执行完,导致 token 和 user_id 没有取到;就可能执行跳转。我知道是由于封装的 promise 导致的,但是不知道怎么变成同步,.then().then().catch()好像没用,而且取得数据要判断,执行不了。3.原本把注册函数也封装了,代码如下:当时的写法:this.$store.dispatch('UserRegister');
this.$store.dispatch('GetUserInfo');
this.$router.push('home')但是发现,我封装好了,不知道让它们同步执行,然后就把 'UserRegister'拆开了。所以现在想解决上面问题后,帮我再回答下面这个问题。非常感谢!
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
试一试
Promise.all([
this.$store.dispatch('登录注册'),
this.$store.dispatch('获取用户信息')
]).then( 执行跳转 )
www说
TA贡献1775条经验 获得超8个赞
把 this.$store.dispatch('getUserInfo')封装成promise返回,通过下面这样:
this.$store.dispatch('getUserInfo').then(res => {
this.$router.push('/index');
}).catch( err => {
console.log(err);
})
慕后森
TA贡献1802条经验 获得超5个赞
修改getUserInfo
getUserInfo(){
return api....
}
然后再修改跳转逻辑
this.$store.dispatch('getUserInfo').then(res => {
this.$router.push('/index');
})
添加回答
举报
0/150
提交
取消