source

Vuex 작업: 다른 작업 내의 작업 액세스(디스패치 없음, Promise.all을 연결해야 함)

manysource 2023. 7. 4. 21:59

Vuex 작업: 다른 작업 내의 작업 액세스(디스패치 없음, Promise.all을 연결해야 함)

vuex 작업 내에서 몇 가지 다른 작업(모든 약속)의 결과를 기다려야 합니다.중첩 발송을 피하고 싶은데 Promise.all을 사용하여 할 수 있는 방법이 있습니까?예:

Promise.all([ action1, action2 ])
    .then(() => { 
        // do the thing
    });

수행한 작업이 약속을 반환하는 경우 - 네, 그렇게 할 수 있습니다.예를들면

let res1 = this.$store.dispatch('action1', data1);
let res2 = this.$store.dispatch('action2', data2);

Promise.all([ res1, res2 ])
    .then(() => { 
        // do the thing
    });

const actions = 
{
  action1 ({ commit, getters, rootState })
  {
    return this.$axios.get(`/user/patient/${rootState.route.params.id}/call/currentCall`)
      .then(res =>
      {
        let call = Object.getOwnPropertyNames(res.data).length === 0 ? false : res.data;
        if (call && call.call_details.patient_dial_status === 'in-progress')
        {
          commit('setCurrentCall', {
            currentCall: call,
            callState: 'in-call'
          });
        }
        return Promise.resolve(call);
      });
  }, 
};

언급URL : https://stackoverflow.com/questions/51464569/vuex-actions-access-action-within-other-action-no-dispatch-need-to-chain-prom