一定時間経過後に何か処理をさせたければ、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関数で実装した方が良いと思う。