--- title: WebAssembly.instantiateStreaming() slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming ---
{{JSRef}} {{SeeCompatTable}}

WebAssembly.instantiateStreaming() 関数はソースのストリームから直接 WebAssembly モジュールをコンパイルしてインスタンス化します。

構文

Promise<ResultObject> WebAssembly.instantiateStreaming(source, importObject);

パラメータ

source
コンパイルしてインスタンス化する .wasm モジュールのソースを表す {{domxref("Response")}} オブジェクトか、それをfulfillするプロミス。
importObject {{optional_inline}}
関数や {{jsxref("WebAssembly.Module")}} オブジェクトなどの新しく生成される Instance にインポートされる値を持つオブジェクト。モジュール内で宣言されたインポートそれぞれに対応するプロパティが存在する必要があります。そうでない場合、{{jsxref("WebAssembly.LinkError")}} がスローされます。

戻り値

解決時に次の2つのフィールドを持つ ResultObject を渡す Promise:

例外

次の例 (Github上のデモ instantiate-streaming.html と、 動作例 を参照してください) では、ソースから .wasm モジュールを直接コンパイルしてインスタンス化しています。プロミスは ResultObject で fulfill されます。instantiateStreaming()  関数は {{domxref("Response")}} オブジェクトを渡すプロミスを受け取るので、直接 {{domxref("WindowOrWorkerGlobalScope.fetch()")}} 呼び出し結果を渡すことができます。

var importObject = { imports: { imported_func: arg => console.log(arg) } };

WebAssembly.instantiateStreaming(fetch('simple.wasm'), importObject)
.then(obj => obj.instance.exports.exported_func());

最後に ResultObject が持つ instance メンバーにアクセスして、エクスポートされた関数を実行しています。

仕様

Specification Status Comment
{{SpecName('WebAssembly Embedding', '#webassemblyinstantiatestreaming', 'instantiateStreaming()')}} {{Spec2('WebAssembly Embedding')}} 初回ドラフト定義

ブラウザ実装状況

{{Compat("javascript.builtins.WebAssembly.instantiateStreaming")}}

関連情報