Привет всем! Изучаю debounce, пробую использовать его на практике, согласно документации сделал функцию debounce и сделал счетчик, но при этом когда я несколько раз нажимаю кнопку, то счетчик передает +10 ровно столько раз сколько я нажму кнопку, игнорируя 5 секунд задержки которые я прописал. Где я ошибся, почему счетчик игнорирует debounce?
this.state = {
a: 0,
};
debounce(f, ms) {
let isCooldown = false;
return function () {
if (isCooldown) return;
f.apply(this, arguments);
isCooldown = true;
setTimeout(() => (isCooldown = false), ms);
};
}
clock = () => {
this.setState({a: this.state.a + 10});
};
<TouchableOpacity
style={[styles.button,
styles.green]}
onPress={() => {
this.debounce(this.clock(), 5000);
console.log(this.state.a);
}}>