Есть 2 модуля в Vuex.
Модуль А, получает данные с сервака и кладет в свой стор. Модуль Б, должен взять данные из модуля А.
Проблема заключается в том, что когда из Модуля Б, стучусь через геттер или экшен в модуль А и прошу показать мне данные в сторе, то их еще нет, т.е. с сервака они не пришли.
Модуль А
import {getProducts} from "../api";
export default {
state: {
products: [],
},
mutations: {
setProducts(state, products) {
state.products = products;
}
},
getters: {
getProducts({products}) {
return products;
},
},
actions: {
async fetchProducts({commit}) {
commit("setProducts", await getProducts());
},
}
}
Модуль Б
export default {
state: {
size: 10,
listProduct: [],
},
mutations: {
setListProducts(state,payload) {
console.log(payload)
}
},
getters: {
listProducts(state) {
return state.listProduct;
},
getAllItemsFromProductsStore(_, getters, rootState) {
return rootState.products.products;
}
},
actions: {
setListProducts({getters, commit}) {
let localProducts = getters.getAllItemsFromProductsStore;
}
}
}
Собственно вопрос, как правильно реализовать полученние данных из одного модуля в другой, при этом чтобы геттер\экшен уже вернул данные после прихода ответа с сервака модуля А?
Как вариант предполагаю в методах компонента, перезапрашивать экшен модуля Б, до тех пор пока модуль А не вернет НЕ пустой массив. Но насколько этот вариант правильный?