setTimeoutをsetIntervalを組み合わせて指定した時刻ごとに処理を実行するサンプル
この方法はあくまで実装例であって、実際に使用するのはおすすめはしない
setInterval単体だと一定時間ごとにしか実行できないのなら、それができる時間まで待って実行すればいい という考え方
例えば、毎分0秒に実行するコードはこう書ける
code:js
const date = new Date()
const now = date.getTime()
const nextHours = date.getMinutes() + 1
const next = date.setMinutes(nextHours, 0, 0)
const diff = next - now
const fn = () => console.log('0秒だよ')
setTimeout(() => {
fn()
setInterval(fn, 1000 * 60)
}, diff)
処理の流れとしては、次の0分までの時間を算出し、その時間を待った後に、setIntervalで繰り返し実行する