Я пытаюсь установить статус загрузки для компонента, который будет отображать график загрузки c во время обработки запроса. У меня это работает с вызовом API, возвращая обещание из выборки в интерфейс REST. Однако, при попытке сделать это простым вызовом службы, кажется, что она вызывает только последнюю мутацию
В хранилище vuex:
var initialState = {
status: { loading: false },
all_clients: [],
current_client: {
loaded: false,
}
}
export const fund = {
namespaced: true,
state: initialState,
actions: {
getClientOverview({ commit }, client_group_id) {
commit('loadingRequest');
clientService.getClientOverview(client_group_id)
.then(
clientInfo => {
commit('loadingSuccess')
},
error => {
commit('loadingError', error);
}
)
}
},
mutations: {
// Mutations to set loading and error statuses
loadingRequest(state) {
state.status = { loading: true };
},
loadingSuccess(state) {
state.status = { loading: false };
},
loadingError(state,error) {
state.status = { loading: false };
store.dispatch('alert/error', "Error Loading Client: " + error)
},
}
и в соответствующей клиентской службе, которая вызывается:
function getClientOverview(client_group_id) {
return new Promise((resolve,reject) => {
try {
// Note here that client.state.all_clients is an array of objects already set in the store
let clientDetail = client.state.all_clients.filter(function(item) {
return item.client_group_id === client_group_id;
});
// THIS PAUSE CODE JUST ADDED TO SLOW THINGS DOWN A BIT ON FRONT END
// SO I CAN SEE IF MUTATIONS ARE WORKING CORRECTLY
var d = new Date();
var d2 = null;
do { d2 = new Date(); }
while(d2-d < 2000);
// TO HERE
if(clientDetail.length == 0){
reject("Client Information not found")
}
resolve(clientDetail[0])
}catch(error){
reject(error)
}
})
}
Клиент возвращается, как и ожидалось, в качестве решенного обещания, но я вижу только, что для параметра loading для внешнего интерфейса задано значение false, для него не установлено значение true во время работы службы. его процесс.
Если я удаляю строку commit ('loadingSuccess'), то я вижу исходную фиксацию, вызываемую как ожидалось, и загрузку устанавливаемую в true - кажется, что только одно коммита вызывается за действие
Буду признателен за любую помощь в этом!
Спасибо