У меня есть страница корзины, написанная с помощью VueJs и Vuex. У меня есть файл api, который действует как оболочка вокруг ax ios.
В моем действии vuex я вызываю API, и, если он был успешным, я передаю данные в свою мутацию.
async await mounted () {
const result = this.getStatus()
if (result === "locked") {
this.$router.push({name: "LockedPage"}
}
else if (result === "expired") {
this.$router.push({name: "SessionExpiredPage"}
}
doSomething(result)
},
methods: {
function doSomething(res) {
// does something with result
}
}
Функция getStatus взята из моего действия vuex.
const {authid, authpwd} = router.history.current.params
if (!authid || !authpwd) {
router.push({name: "SomethingWrong"})
return
}
const res = await api.getStatus
commit("SET_STATUS", res.status)
if (res.otherLogic) {
//commit or trigger other actions
}
return status
}
Какой идеальный способ справиться с подобными ошибками API? Если вы посмотрите, то увидите, что я выполняю маршрутизацию внутри установленного хука внешнего компонента, а также внутри самого действия vuex. Должна ли вся маршрутизация для этой функции состояния происходить внутри действия vuex?
Я думаю, как это в настоящее время настроено, когда маршрутизируется SomethingWrong page
get. Он все равно вернет выполнение функции mounted
. Так что технически функция doSomething
все еще может быть вызвана, но я думаю, с неопределенными значениями. Это кажется плохим. Есть ли способ остановить выполнение кода после того, как мы перенаправим пользователя на страницу с ошибкой? Было бы лучше выдавать ошибку после маршрутизации страницы?