Как написать async / await в ответном заявлении vuex - PullRequest
0 голосов
/ 26 июня 2019

У меня изначально был этот код:

export function InitActions($api) {
  return {
    [partnersMts.PARTNERS_LIST]({commit, state}) {
      if (!state.partnersList || state.partnersList.length === 0) {
        $api.partners.partnersList().then(result => {
          commit(partnersMts.PARTNERS_LIST, result.data);
        });
      }
    }
  }
}

Я пытаюсь переписать его с помощью async / await, я пробовал это:

export function InitActions($api) {
  return {
    async [partnersMts.PARTNERS_LIST]({commit, state}) {
      if (!state.partnersList || state.partnersList.length === 0) {
        await $api.partners.partnersList()
        commit(partnersMts.PARTNERS_LIST, result.data);
      }
    },
   }
}

Но я получаю ошибку: Uncaught (in promise) ReferenceError: result is not defined В приведенной выше строке подтверждения это указывает на то, что код не ожидает завершения вызова, что я здесь пишу неправильно?

1 Ответ

0 голосов
/ 26 июня 2019

Вам нужно сохранить результат ожидания в переменной result:

const result = await $api.partners.partnersList()
commit(partnersMts.PARTNERS_LIST, result.data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...