Javascript 删除去抖动回调
我在React商店中有以下代码: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。如何
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
。