JavaScriptプログラムに関する各種メモ書き

JavaScriptのSetTimeoutで 疑似sleep(遅延実行) を実現する

● JavaScriptの setTimeout を使って遅延実行する

setTimeout を使った例 : 次のコードを実行すると結果はどうなるでしょう?

setTimeout( function() {
    console.log('aaa');
    console.log('bbb');
}, 1500 );
console.log('ccc');

結果 : 「ccc」→「aaa」→「bbb」 の順で表示されます。

ccc
aaa
bbb

※ 正確には setTimeoutは遅延実行です。(指定時間たってから実行するようタイマーをセットする。) 上記の例ですとブラウザのコンソールに 'ccc' と表示されてから 1.5秒後にaaa, bbb が表示されます。

● setTimeout に変数を渡す

setTimeout で 呼び出す関数に引数を渡すには遅延時間の後に引数を渡します。

for (var i = 0; i < 10; i++) {
	setTimeout( function(data) { document.write(data+"<br>\n"); }, i*500, i );
}

●settimeout に オブジェクトのメソッドを指定する

my_method : function() {
	var _this = this;
	this.timer_id = setTimeout( function(){ _this.method(); },500);
}
No.279
09/15 07:18

edit