WorkerGlobalScope: setTimeout() メソッド

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

メモ: この機能はウェブワーカー内でのみ利用可能です。

setTimeout()WorkerGlobalScope インターフェイスのメソッドで、時間切れになると、関数または指定されたコードの断片を実行するタイマーを設定します。

構文

js
setTimeout(code)
setTimeout(code, delay)

setTimeout(functionRef)
setTimeout(functionRef, delay)
setTimeout(functionRef, delay, param1)
setTimeout(functionRef, delay, param1, param2)
setTimeout(functionRef, delay, param1, param2, /* …, */ paramN)

引数

functionRef

タイマーが満了した後に実行する関数

code

関数の代わりに文字列を含める代替構文も許容されており、タイマーが満了したときに文字列をコンパイルして実行します。 eval() の使用にリスクがあるのと同じ理由で、この構文は推奨しません

delay 省略可

指定した関数やコードを実行する前に待つタイマーの時間をミリ秒 (1/1000 秒) 単位で指定します。この引数を省略すると値 0 を使用しますので「直ちに」実行する、より正確に言えばできるだけ早く実行することを意味します。

なお、どちらの場合も、実際の待ち時間が想定より長くなることがあります。後述する待ち時間が指定値より長い理由をご覧ください。

また、値が数値でない場合、暗黙のうちに型変換が行われ、数値に変換されることにも注意してください。これは予期しない、驚くべき結果につながる可能性があります。例として、delay の値が数値でない場合は暗黙に数値に強制されるを参照してください。

param1, …, paramN 省略可

タイマーが満了したときに、 functionRef で指定された関数に渡す追加の引数です。

返値

setTimeout() メソッドは、呼び出しによって作成されたタイマーを一意に識別する正の整数(通常は 1 から 2,147,483,647 の範囲)を返します。この識別子は、よく「タイムアウト ID」と呼ばれ、 clearTimeout() に渡すことで、タイマーを停止することができます。

同じグローバル環境(特定のウィンドウやワーカーなど)では、元のタイマーがアクティブである限り、タイムアウト ID は確実に一意となり、新しいタイマーには再利用されません。ただし、グローバル環境が異なると、それぞれ独立したタイマー ID のプールが管理されます。

解説

詳しい説明は Window.setTimeout() を参照してください。

例については Window.setTimeout() を参照してください。

仕様書

Specification
HTML
# dom-settimeout-dev

ブラウザーの互換性

関連情報