うっかり忘れてしまう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ミリ秒後、・・・とセットしないといけない。
コメントを残す