Не может отменить действие в рамках другого действия в Vuex - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь отговорить что-либо в действии, оно так или иначе проглатывается ...

Возьмите этот (псевдо) код:

import { debounce } from "lodash";

const actions = {
  debounceSomeLogging ({ dispatch }, text) {
    console.log("Outside debounced function.");
    debounce(function() {
      console.log("Inside debounced function.");
      dispatch("doRealThing");
    }, 1000);
  },

  doRealThing({ commit }) {
    // Whatever
  }
}

Когда я звонюдействие, я вижу Outside debounced function, но я не вижу других журналов, и другое действие не запускается.

Кто-нибудь имеет опыт с этим и может указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 11 августа 2019

Это должно определить работу

import { debounce } from "lodash";

const actions = {
  debounceSomeLogging: debounce(({ dispatch }, text) => {
    console.log("Inside debounced function.");
    dispatch("doRealThing");
  }, 1000),

  doRealThing({ commit }) {
    // Whatever
  }
}
0 голосов
/ 30 декабря 2018

Как указано в комментарии nemesv , функция debounce не вызывает внутреннюю функцию.Поэтому вам нужно снова вызвать debounce, например:

debounce(function() {
  console.log("Inside debounced function.");
  dispatch("doRealThing");
}, 1000)();

Итак, вкратце, он должен выглядеть следующим образом:

debounce(...)() вместо этого debounce(...).

...