WebAssembly.instantiateStreaming()

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La fonction WebAssembly.instantiateStreaming() permet de compiler et d'instancier un module WebAssembly depuis un flux source.

Syntaxe

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

Paramètres

source
Un objet Response ou une promesse qui sera tenue avec une valeur Response qui représente la source du module .wasm dont on souhaite récupérer le flux, la compiler puis l'instanciere.
importObject Facultatif
Un objet qui contient les valeurs qui doivent être importées dans le nouvel objet Instance résultant. Cela peut être des fonctions ou des objets WebAssembly.Memory. Il est nécessaire qu'il y ait une propriété correspondante pour chaque import déclaré dans le module compilé, sinon, une exception WebAssembly.LinkError sera levée.

Valeur de retour

Un objet Promise dont la valeur de résolution est un objet ResultObject contenant deux champs :

Exceptions

Examples

Dans l'exemple suivant (également disponible sur GitHub : instantiate-streaming.html et avec le résultat live), on récupère le flux d'un module .wasm depuis une source, on le compile et on l'instancie. La promesse est alors résolue avec un objet ResultObject. La méthode instantiateStreaming()  acceptant une promesse fournissant un objet Response, on peut directement l'appel de WindowOrWorkerGlobalScope.fetch() en argument qui transfèrera la réponse lorsque la promesse résultante sera tenue.

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

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

Ensuite, on accède au champ instance de l'objet ResultObject afin de pouvoir invoquer une des fonctions exportées.

Spécifications

Spécification État Commentaires
WebAssembly features for web embedding
La définition de 'instantiateStreaming()' dans cette spécification.
Projet Brouillon de définition initiale.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple61 Oui58 Non47 ?
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Support simple6161 Oui158 Non ? ?

1. This feature is behind the Experimental JavaScript Features preference.

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,