我试图消除动作中的任何东西,它会以这样或那样的方式被吞没...

以以下(伪)代码为例:

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,但我看不到另一个日志(log)记录,并且另一个操作没有被触发.

有没有人有这方面的经验,能为我指出正确的方向?

推荐答案

正如nemesv在 comments 中指出的,debounce函数不调用内部函数.所以你需要再次调用debounce,就像这样:

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

简而言之,它应该是这样的:

debounce(...)()而不是像这样的debounce(...).

Vue.js相关问答推荐

Vue 2 如何在全局函数中返回观察者

vuetify/mdi 不显示图标

Nuxt3-Vue中的useRoute和useRouter有什么区别

vue router/:param 斜杠的参数

VuetifyJS,outer-link 未显示为光标

从组件的 内的组件调用方法

如何在Typescript语言Vuejs中使用watch功能?

判断 vue-router.beforeEach 不限制对路由的访问

如何使 Rails 与 vue.js 一起工作?

Vue.js 无法切换字体真棒图标

Laravel 中的 VueJS 组件实现中的鼠标悬停

Vue devServer 代理没有帮助,我仍然收到 CORS 错误

Vue:如何在按钮单击时调用 .focus()

即使在生产模式下构建,VueJS 也会显示开发模式开发模式消息

异步api调用后如何使用vuex getter

过渡后的 v-if 下方的过渡元素

无法访问函数内的数据属性

在 Vue.js 模板中调用函数

v-bind:class 的 Vue.js 计算(computed)属性

将鼠标悬停在 TailwindCSS 中的 div 上时显示按钮