javascript 繰り返し開始処理と終了後繰り返し処理について

一定時間経過後に何か処理をさせたければ、setTimeout関数setInterval関数を使えばよい。

この2つの違いは、setTimeout関数は、1回だけ実行され、setInterval関数は永遠に繰り返し実行される。

// setTimeout
hello = function(){
    console.log('hello');
}
setTimeout(hello, 2000);   // 2秒後に'hello'が表示される
// setInterval
hello = function(){
    console.log('hello');
}
setInterval(hello, 2000);  // 2秒間隔で'hello'が表示され続ける

しかし、以下のようにすれば、setTimeout関数でも永遠に繰り返すことができる。

hello = function(){
    console.log('hello');
    setTimeout(hello, 2000);
}
hello();

setTimeout関数でも永遠に繰り返すことはできるが、setInterval関数とは大きな違いがある。

setTimeout関数を使用した場合:処理が終わってから、一定時間経過後、処理を開始する。
setInterval関数:処理を開始してから、一定時間経過後、処理を開始する。

つまり、正確に一定周期で処理を行いたい場合は、setInterval関数を使用した方が良いし、一定時間で監視などをしたいけど、処理には時間がかかる(監視時間 < 処理時間)のような(の可能性がある)場合は、setTimeout関数で実装した方が良いと思う。

返信を残す

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