nativescript ожидает запроса, пока vuex не выполнит запрос - PullRequest
1 голос
/ 10 апреля 2020

У меня есть страница входа в систему. vue, и я использую стратегию, если пользователь уже вошел в систему, тогда go к домашнему компоненту, в противном случае остается прежним

Мой код

mounted() {
  this.checkAlreadyLoggedIn();
},
methods: { 
 async checkAlreadyLoggedIn() {
   this.busy = true;
   await this.$store.dispatch("attempt");
   this.busy = false;
   if (this.$store.getters.loggedIn) {
     this.$navigateTo(Home, {
      clearHistory: true
     });
   }
 },
}

попытаться выполнить запрос к серверу и получить сведения о пользователях, но кажется, что это вызывает this.$store.getters.loggedIn рано

Спасибо

1 Ответ

2 голосов
/ 10 апреля 2020

Для правильного ожидания перед проверкой получателя и запуска состояния занятости верните обещание из действия attempt:

attempt({ state, commit }) {
  return axios.post(...)  // <-- Returning the promise manually
  .then(response => {
    // Commit change
  })
},

Или с asyn c / await:

async attempt({ state, commit }) { // <-- async keyword returns promise automatically
  const response = await axios.post(...);
  // Commit change
}

Вот демоверсия

...