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時間でも、同じような書き方でできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です