关于 vuex 的异步函数的问题
来源:4-4 获取用户基本信息
johnny_2008
2022-07-10
老师您好
1、什么情况需要返回Promise, 什么情况不需要
2、什么情况使用async,什么情况不需要
3、异步函数错误处理,在login函数里有对请求错误的处理,getUserInfo和logout就没有对请求进行错误处理,对于用async的函数是否也应该用 try catch进行包裹呢,这样代码统一风格
login(context, userInfo) {
const { username, password } = userInfo
return new Promise((resolve, reject) => {
login({
username,
password: md5(password)
})
.then(data => {
this.commit(‘user/setToken’, data.token)
// 保存登录时间
setTimeStamp()
resolve()
})
.catch(err => {
reject(err)
})
})
},
async getUserInfo(context) {
const res = await getUserInfo()
this.commit(‘user/setUserInfo’, res)
return res
},
logout() {
resetRouter()
this.commit(‘user/setToken’, ‘’)
this.commit(‘user/setUserInfo’, {})
this.commit(‘app/initTagsViewList’)
removeAllItem()
router.push(’/login’)
}
1回答
-
你好
异步的操作都应该通过 promise 完成
async 和 await 是简化 promise 操作的,有 promise 的地方可以使用他们
如果你不需要在 catch 时做一些其他的事情的话,那么是不需要进行专门的 catch 处理的
012022-07-11
相似问题