--- 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 ---
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).
Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);
Ein Promise
das sich in ein {{jsxref("WebAssembly.Module")}} Objekt auflöst, welche das kompilierte Modul darstellt.
bufferSource
kein typisiertes Array ist, wird ein {{jsxref("TypeError")}} geworfen.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 | Status | Kommentar |
---|---|---|
{{SpecName('WebAssembly Embedding', '#webassemblycompilestreaming', 'compileStreaming()')}} | {{Spec2('WebAssembly Embedding')}} | Initial draft definition. |
{{Compat("javascript.builtins.WebAssembly.compileStreaming")}}