У меня есть проект на
Vue.JS. В
App.vue, при создании, я кидаю запрос на сервер с API, после чего мне приходят данные пользователя (
checkAuthToken). Затем в другом объекте, при создании, я отправляю также запрос на сервер, но уже использую айдишник юзера, который приходит в первом запросе (
getUser).
Запросы я делаю так:
axios.get('...', {...}).then(response => {commit('setUserInfo', response.data ...)}).catch(...)
. В
then я и ставлю данные пользователя через мутации. Вроде бы все должно работать. Но возникает проблема. Сначала вызывается
checkAuthToken, затем
getUser и только потом мутации, которые ставят данные пользователя (в том числе айдишник). Почему они вызываются в самом конце, а не вначале, и как это исправить?
И еще, мне кажется, это все связано с
await.
В
App.vue:
async created() {
var result = await this.$store.dispatch('checkAuthToken', {
token: auth_token
})
...
}
В
другом vue:
async created() {
var result = await this.$store.dispatch('getUser', {
id: this.$store.getters.userId // мутации, которые ставят айди еще не вызывались, возникает ошибка
})
...
}