我在 React 商店中有以下代码:
addChangeListener(cb) {
this.on(CHANGE_EVENT, _.debounce(cb, 100));
}
removeChangeListener(cb) {
_.debounce(cb).cancel();
this.removeListener(CHANGE_EVENT, cb);
}
我不认为 removeChangeListener
会因为 _.debounce
函数而删除 cb
。如何使用 _.debounce
,并确保删除正确的 cb
?
最佳答案
你是对的。 _.debounce
创建一个新函数。所以你需要做类似的事情:
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
就不会得到困惑。
关于javascript - 删除去抖回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830222/