1. I have created a new store and want to manage an event with a status value:
import Vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)
//
const state = {
status: ""
}
// mutations
const mutations = {
REQUESTWAITING(state) {
console.log("waiting")
console.log(state);
state.status="waiting";
},
REQUESTSUCCESS(state) {
console.log("success")
console.log(state);
state.status="success";
},
REQUESTERROR(state){
state.status="error";
}
}
const getters={
getStatus(state) {
return state.status
}
}
const actions={
requestWaiting({commit}) {
commit("REQUESTWAITING")
},
requestSuccess({commit}) {
commit("REQUESTSUCCESS")
},
requestError({commit}){
commit("REQUESTERROR")
}
}
// store
export default new Vuex.Store({
actions,
getters,
state,
mutations
})
2: call vuex, in an event. Change the status of state to waiting, before entering the request. After the request is executed, if the status is successfully changed to success, and failed to change to error; (all these operations have been implemented). However, when I obtain the status value in the following method, I want to determine whether the request is completed, but I do not get the desired result. The value of status gets the value of waiting instead of the value after the callback. Is there any way to manage asynchronous requests so that all requests in an event are executed before performing the next step
wFBtn_Next_fn:function(){
wFConfig.wf_error=0;
//
wFeventBus.$emit("wFBtn_Next_event",event);
let status=this.$store.state.status;
console.log("status:")
console.log(status);
if(status=="error"){
console.log("");
return;
}
if(status=="success"){
console.log("")
return;
}
if(status!="success"){
console.log("")
return;
}