F.Ko-Jiの「一秒後は未来」

うっかり忘れてしまうJavaScriptのsetTimeout実行タイミング

基本だけどしばしば忘れてしまうので忘れないようにメモ。

JavaScriptのwindow.setTimeoutは、それが呼び出された瞬間から指定ミリ秒だけWaitして実行される。つまり、

for (var i = 0; i < 5; i++) {
    window.setTimeout(function(){myfunc()}, 500);
}

このようなコードを実行すると、5回実行される myfunc() は(ほぼ)同時に実行されてしまう。なので、5回のmyfunc()を500ミリ秒ごとに遅延実行させたいときは、

for (var i = 0; i < 5; i++) {
    window.setTimeout(function(){myfunc()}, 500 * (i + 1));
}

のように、1回目は500ミリ秒後、2回目は1000ミリ秒後、・・・とセットしないといけない。

コメントを残す

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

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など