vuex状态管理 action的问题
题目描述
代码如下:怎么等待action这些操作都完成之后,再执行vue组件中的异步函数
题目来源及自己的思路
问题来源于正在开发的项目
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
const actions = {
async login({ commit }, userInfo) {
my.getAuthCode({
scopes: 'auth_user', // 主动授权:auth_user,静默授权:auth_base。或者其它scope
success: (res) => {
if (res.authCode) {
return Vue.prototype.$http.getToken(res.authCode).then(result => {
return result
}).then(result=>{
my.getAuthUserInfo({
success: (userInfo) => {
commit( 'ALIUSERID' , result.data.userId);
commit('AVATAR', userInfo.avatar);
commit('NICKNAME', userInfo.nickName);
var _data = {
nick: userInfo.nickName ? userInfo.nickName : '',
ico: userInfo.avatar ? userInfo.avatar : '',
aliUserId: result.data.userId,
noLoginType: 4,
device: 'ali-mini-program',
}
Vue.prototype.$http.postLogin(_data).then(res => {
var userCname = res.userinfo.username;
var userPhone = res.userinfo.phone;
commit('USERID', userCname);
commit('USERPHONE', userPhone);
})
}
});
})
}
},
});
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建个promise return出去就完了
你用了async为啥不用await呢。
把你的my.getAuthCode与my.getAuthUserInfo改成promise
然后login成async await 就行了