关于 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回答

Sunday

2022-07-11

你好

  1. 异步的操作都应该通过 promise 完成

  2. async 和 await 是简化 promise 操作的,有 promise 的地方可以使用他们

  3. 如果你不需要在 catch 时做一些其他的事情的话,那么是不需要进行专门的 catch 处理的

0
1
johnny_2008
老师讲的非常清晰,谢谢!
2022-07-11
共1条回复

基于Vue3新标准,打造后台综合解决方案

基于Vue3重写Vue-element-admin,打造后台前端综合解决方案

1941 学习 · 1687 问题

查看课程