--- title: WebAssembly.compileStreaming() slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming tags: - API - JavaScript - Method - Object - Reference - WebAssembly - compile - compileStreaming - streaming translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming ---
{{JSRef}}

Die WebAssembly.compileStreaming() Funktion kompiliert ein {{jsxref("WebAssembly.Module")}} direkt aus einer zugrunde liegenden Quelle. Nützlich ist diese Funktion wenn ein Modul kompiliert werden muss, bevor es instanziiert werden kann. (ansonsten sollte die {{jsxref("WebAssembly.instantiateStreaming()")}} Funktion verwendet werden).

Syntax

Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);

Parameter

source
Ein {{domxref("Response")}} Objekt oder ein Promise das sich zu einem solchen auflöst. Es stellt die zugrunde liegende Quelle eines .wasm Moduls dar, die gestreamt und kompiliert werden soll.

Rückgabewert

Ein Promise das sich in ein {{jsxref("WebAssembly.Module")}} Objekt auflöst, welche das kompilierte Modul darstellt.

Ausnahmen

Beispiele

Das folgende Beispiel (siehe unsere compile-streaming.html Demo auf GitHub, und siehe das live Beispiel) streamt ein .wasm Modul direkt aus der zugrunde liegenden Quelle und kompiliert es in ein {{jsxref("WebAssembly.Module")}} Objekt. Weil die compileStreaming()  Funktion ein Promise für ein {{domxref("Response")}} Objekt annimmt, kann ihr direkt ein  {{domxref("WindowOrWorkerGlobalScope.fetch()")}} Aufruf durchgereicht werden, woraufhin es die Antwort in diese Funktion abgibt, sobald das Promise sich erfüllt.

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

WebAssembly.compileStreaming(fetch('simple.wasm'))
.then(module => WebAssembly.instantiate(module, importObject))
.then(instance => instance.exports.exported_func());

Das resultierende Modul wird dann mittels {{jsxref("WebAssembly.instantiate()")}} instanziiert und die bereitgestellte Funktion wird aufgerufen.

Spezifikationen

Spezifikationen Status Kommentar
{{SpecName('WebAssembly Embedding', '#webassemblycompilestreaming', 'compileStreaming()')}} {{Spec2('WebAssembly Embedding')}} Initial draft definition.

Browserkompatibilität

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

Siehe auch