--- title: WebAssembly.compileStreaming() slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming tags: - API - JavaScript - Méthode - Object - Reference - WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming original_slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/compileStreaming ---
La fonction WebAssembly.compileStreaming()
permet de compiler un module WebAssembly (c'est-à-dire un objet {{jsxref("WebAssembly.Module")}}) depuis un flux source. Cette fonction est utile si on doit compiler un module avant de l'instancier séparement, sinon on utilisera plutôt {{jsxref("WebAssembly.instantiateStreaming()")}}.
Promise<WebAssembly.Module> WebAssembly.compileStreaming(source);
source
Un objet Promise
dont la valeur de résolution est un objet {{jsxref("WebAssembly.Module")}} qui représente le module compilé.
Dans l'exemple suivant (également disponible sur GitHub : compile-streaming.html et avec le résultat live), on récupère un flux dedpuis un module .wasm puis on le compile en un objet {{jsxref("WebAssembly.Module")}}. La fonction compileStreaming()
acceptant une promesse pour un objet {{domxref("Response")}}, on peut directement passer l'appel à {{domxref("WindowOrWorkerGlobalScope.fetch()")}} qui transfèrera la réponse dès que la promesse sera tenue.
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());
Le module est ensuite instancié grâce à la fonction {{jsxref("WebAssembly.instantiate()")}}. Enfin, on appelle la fonction exportée.
Spécification | État | Commentaires |
---|---|---|
{{SpecName('WebAssembly Embedding', '#webassemblycompilestreaming', 'compileStreaming()')}} | {{Spec2('WebAssembly Embedding')}} | Brouillon pour la définition initiale. |
{{Compat("javascript.builtins.WebAssembly.compileStreaming")}}