无法在 Vuex 中的其他动作中反跳动作
Can not debounce action within other action in Vuex
我正在尝试对 Action 中的任何内容进行去抖动,它以某种方式被吞没...
取这个(伪)代码:
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
,但我看不到其他日志记录并且没有触发其他操作。
任何人都有这方面的经验,可以指出正确的方向吗?
正如 nemesv 在评论中指出的那样,debounce
函数不调用内部函数。所以你需要再次调用 debounce,像这样:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
所以,简而言之,它应该是这样的:
debounce(...)()
而不是像这样 debounce(...)
.
这应该定义工作
import { debounce } from "lodash";
const actions = {
debounceSomeLogging: debounce(({ dispatch }, text) => {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000),
doRealThing({ commit }) {
// Whatever
}
}
我正在尝试对 Action 中的任何内容进行去抖动,它以某种方式被吞没...
取这个(伪)代码:
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
,但我看不到其他日志记录并且没有触发其他操作。
任何人都有这方面的经验,可以指出正确的方向吗?
正如 nemesv 在评论中指出的那样,debounce
函数不调用内部函数。所以你需要再次调用 debounce,像这样:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
所以,简而言之,它应该是这样的:
debounce(...)()
而不是像这样 debounce(...)
.
这应该定义工作
import { debounce } from "lodash";
const actions = {
debounceSomeLogging: debounce(({ dispatch }, text) => {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000),
doRealThing({ commit }) {
// Whatever
}
}