Я настраиваю аутентификацию, используя apollo-vue graphql. Чтобы перенаправить пользователя на домашнюю страницу, когда он / она успешно вошел в систему. Я возвратил обещание из действия Vuex и использовал then () в компоненте Vue, где я помещаю свой узел в маршрут для перенаправления, но затем () в компоненте Vue всегда выполняется, даже если я получаю ошибку от catch (), которая находится в действиях vuex, и пользователь всегда перенаправляется на домашнюю страницу
Я пытался добавить catch after then () в компонент Vue, и он работает, но я хочу зафиксировать свою ошибку в vuex, а не в компоненте vue
Действие в Vuex
login(){
return apollo
.mutate({
mutation: CREATE_SHOP_USER,
variables: signUpData
})
.then((res) => console.log(res))
.catch((err) => console.log(err))
}
Метод в компоненте Vue
userAuthenticate() {
const userSignupData = {
email: this.email,
password: this.password
};
this.$store
.dispatch("authenticateApp", userSignupData)
.then(() => {
this.$router.push("/");
})
Я ожидаю, что "then" в компоненте Vue никогда не должен выполняться, если catch уже выполнен, что находится в действии Vuex.