このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Window: setImmediate() メソッド

非推奨;: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

非標準: この機能は標準化されていません。非標準の機能はブラウザーの対応が限られ、将来的に変更または削除される可能性があるため、本番環境での使用は推奨されません。ただし、標準の選択肢が存在しない特定のケースでは、有効な代替手段となる場合があります。

このメソッドは、長時間実行される操作を分割し、ブラウザーの他の操作(イベントや表示の更新など)が完了した直後にコールバック関数を実行するために使用されます。

構文

js
setImmediate(func)
setImmediate(func, param1)
setImmediate(func, param1, param2)
setImmediate(func, param1, param2, /* …, */ paramN)

引数

func

呼び出したい関数。

param1, …, paramN

すべての引数は直接関数に渡されます。

返値

後で window.clearImmediate に使用できる即時タスクの ID です。

メモ

clearImmediate() メソッドをを使用して、setTimeout() に対する clearTimeout() と同様に、即時実行アクションをクリアすることができます。

このメソッドは setTimeout(fn, 0) メソッドの代わりに、重い処理 を実行するために使用できます。

この機能はいくつかの異なる方法でエミュレートできます。

  • postMessage() は、即時だが実行を中断するコールバックを起動するために使用できます。
  • MessageChannel は ウェブワーカーの中では確実に使用できますが、postMessage はその意味論上、そこで使用することはできません。
  • setTimeout(fn, 0) は理論上使用可能ですが、 HTML 仕様書によれば、5 階層以上ネストされたタイマーは 4 msに制限されるため、setImmediateの自然な即時性を実現するポリフィルとしては適していません。

これらの技術はすべて、堅牢な setImmediate のポリフィルに組み込まれています。

仕様書

現行の仕様の一部ではありません。 効率的なスクリプト生成仕様は、既に開発が終了しています。

ブラウザーの互換性

関連情報