setTimeout(関数名, ミリ秒) :設定した時間のあとに、1回だけ処理を実行するように予約する命令
※これも関数名に()はつけない!
▼例)
{
function showTime() {
console.log(new Date());
}
setTimeout(showTime, 1000);
}
<aside> 💫 関数名の箇所を、アロー関数にして中に処理を書くのもOKだよ!
</aside>
▼例)クラスのメソッド内でsetTimeout()を使用
※クラスの場合、スコープの関係で逆にこう書かないと動かないよ!(詳しくは下部に記載)
・
・
・
spin() {
this.img.src = this.getRandomImage();
this.timeoutId = setTimeout(() => {
this.spin();
}, 50);
}
・
・
・
または
spin() {
this.img.src = this.getRandomImage();
this.timeoutId = setTimeout(this.spin**.bind(this)**, 50); //.bind():スコープの範囲を()に指定したものに束縛できる
}
処理を実行したい関数の中にsetTimeout() も入れ、関数を呼び出すと繰り返し処理になる。
▼例)
{
function showTime() {
console.log(new Date());
**setTimeout(showTime, 1000);**
}
showTime();
}
やめたい場合はclearTimeout() を使う。
▼例)3回表示したら処理を止める
{
let i = 0;
function showTime() {
console.log(new Date());
const timeoutId = setTimeout(showTime, 1000); //clearTimeout()に渡せるように、定数に代入する
i++;
if (i > 2) {
**clearTimeout(timeoutId);**
}
}
showTime();
}
▼なぜクラスのメソッド内では、アロー関数の中に記載しないといけないのか

