node : 10秒以内に同じ処理をしていた場合は処理しない、というDate処理の書き方
let lastActionDate = null;
action() {
const date10SecondsAgo = new Date(new Date().setSeconds(new Date().getSeconds() - 10));
if (date10SecondsAgo < lastActionDate) {
console.log('10秒以内に処理していたのでreturnします');
return;
}
lastActionDate = new Date();
// 以降の処理
}
多分もうちょっといい感じの書き方あるんだろうな、とは思いつつ一応メモ。
もちろん3分でも12時間でも、同じような書き方でできます。
コメントを残す