Vuex 承诺拒绝 returns 未定义
Vuex promise reject returns undefined
我希望 promise 拒绝 return 我的方法的错误,但是我的方法 then() 函数中的响应是空的,我怎样才能将错误响应 returned 到我的方法可以进一步使用,甚至可以在 catch 函数中使用。
我的 vuex 动作
//authAction
login({ commit }, payload) {
new Promise((resolve, reject) => {
user.login(payload.user.email, payload.user.password)
.then(response => {
const user = response.data.user;
// If there's user data in response
if (user) {
const payload = [user]
commit('AUTH_SUCCESS', payload, { root: true })
resolve(response)
} else {
reject({ message: "Sorry, cant login right now" })
}
})
.catch(error => {
console.log(error.response.status)
reject(error)
})
})
}
我的方法
// Login method
login() {
if (!this.checkLogin()) return;
this.$vs.loading();
const payload = {
checkbox_remember_me: this.checkbox_remember_me,
user: {
email: this.email,
password: this.password
}
};
this.$store
.dispatch("auth/login", payload)
.then(res => {
this.$vs.loading.close();
console.log(res);
})
.catch(error => {
this.$vs.loading.close();
this.$vs.notify({
title: "Error",
text: error.message,
});
});
}
我错过了什么?
提前致谢!
我的解决方案是 1. 每当抛出更新状态的错误时分派一个动作 2. 在视图中观察状态变化并用它做一些事情
我希望 promise 拒绝 return 我的方法的错误,但是我的方法 then() 函数中的响应是空的,我怎样才能将错误响应 returned 到我的方法可以进一步使用,甚至可以在 catch 函数中使用。
我的 vuex 动作
//authAction
login({ commit }, payload) {
new Promise((resolve, reject) => {
user.login(payload.user.email, payload.user.password)
.then(response => {
const user = response.data.user;
// If there's user data in response
if (user) {
const payload = [user]
commit('AUTH_SUCCESS', payload, { root: true })
resolve(response)
} else {
reject({ message: "Sorry, cant login right now" })
}
})
.catch(error => {
console.log(error.response.status)
reject(error)
})
})
}
我的方法
// Login method
login() {
if (!this.checkLogin()) return;
this.$vs.loading();
const payload = {
checkbox_remember_me: this.checkbox_remember_me,
user: {
email: this.email,
password: this.password
}
};
this.$store
.dispatch("auth/login", payload)
.then(res => {
this.$vs.loading.close();
console.log(res);
})
.catch(error => {
this.$vs.loading.close();
this.$vs.notify({
title: "Error",
text: error.message,
});
});
}
我错过了什么?
提前致谢!
我的解决方案是 1. 每当抛出更新状态的错误时分派一个动作 2. 在视图中观察状态变化并用它做一些事情