Javascript 删除去抖动回调

Javascript 删除去抖动回调,javascript,reactjs,Javascript,Reactjs,我在React商店中有以下代码: addChangeListener(cb) { this.on(CHANGE_EVENT, _.debounce(cb, 100)); } removeChangeListener(cb) { _.debounce(cb).cancel(); this.removeListener(CHANGE_EVENT, cb); } 我不相信removeChangeListener会因为\u.debounce功能而删除cb。如何

我在React商店中有以下代码:

  addChangeListener(cb) {
    this.on(CHANGE_EVENT, _.debounce(cb, 100));
  }

  removeChangeListener(cb) {
    _.debounce(cb).cancel();
    this.removeListener(CHANGE_EVENT, cb);
  }

我不相信
removeChangeListener
会因为
\u.debounce
功能而删除
cb
。如何使用
\uu.debounce
,并确保正确的
cb
被删除?

您是正确的<代码>\反盎司创建一个新函数。所以你需要做一些类似的事情:

var debouncedCb;

addChangeListener(cb) {
  debouncedCb = _.debounce(cb, 100)
  this.on(CHANGE_EVENT, debouncedCb);
}

removeChangeListener(cb) {
  this.removeListener(CHANGE_EVENT, debouncedCb);
  _.debounce(cb).cancel();
}

根据您的具体情况,您可能希望以某种方式将
debouncedCb
附加到
cb
,以便
removeChangeListener
不会混淆。

谢谢,最后将
debouncedCb
哈希到
cb