VUE с использованием данных Axios состояния в компоненте с другой функцией Axios

#javascript #vue.js

Вопрос:

Я создал состояние Vue: (components.js)

 const actions = {
  [DCOMPONENTS] (context) {
    return new Promise (resolve => {
      ESApiService.get ("/ api / components")
        .then (({data}) => {
          context.commit (SET_COMPONENTS, data.data.data);
          //context.commit(SET_USER_ACCOUNT, payload);
          resolve (data);
        })
        .catch (({response}) => {
          context.commit (SET_ERROR, response);
        });
    });
  },
};
 

Это выполняется немедленно, если вы вошли в приложение. Затем я хочу использовать эти данные в компоненте SalesTable.vue.

Это тоже идет хорошо. В SalesTable.vue я использую новый вызов Axios, чтобы получить другой набор данных, который мне не нужно хранить в состоянии.

  methods: {
         async loadTable () {
         await this. $ store
          .dispatch (SALES)
            let tableName = 'SalesTable';
            var components = this.getComponents;
            var sales = this.getSales;
            var i;
          
            for (i = 0; i <components.length; i   ) {
              if (components [i] .name == tableName) {
                var structure = components [i];
              }
            }

            var jsonData = {};
            jsonData.structure = structure;
            jsonData.data = sales;
            this.structureTable = jsonData;
            this.dynamicComponent = Tables;
      },
 

Проблема: Иногда случается так, что components.js Обещание позже, чем 2-й вызов Axios в SalesTable.vue. Это означает, что набор данных (this.structurable = jsonData) не полностью загружен данными о состоянии, и моя таблица не будет генерироваться.

Комментарии:

1. ESApiService.get() похоже, что он уже вернул обещание. Нет необходимости заворачивать его в новый

2. » this. $ store » 👈 что случилось со всеми синтаксическими пробелами?

3. @Фил извини, это ошибка. Это: конечно, этот магазин.$. Проблема в том, что, когда я вызываю функцию loadTable в SalesTable.vue, иногда вызов Axios, который происходит в состоянии, еще не готов. Я хочу убедиться, что вызов Axios (состояние установлено) полностью выполнен, прежде чем будет запущена функция LoadTable.