WebAssembly.Instance() Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.

Der WebAssembly.Instance() Konstruktor erstellt ein neues Instance Objekt, welches eine zustandsbehaftete, ausführbare Instanz eines WebAssembly.Module ist.

Warnung: Da die Instanziierung für große Module teuer sein kann, sollten Entwickler den Instance() Konstruktor nur verwenden, wenn die synchrone Instanziierung absolut erforderlich ist; die asynchrone WebAssembly.instantiateStreaming() Methode sollte in allen anderen Fällen verwendet werden.

Syntax

js
new WebAssembly.Instance(module, importObject) 

Parameter

module

Das WebAssembly.Module Objekt, das instanziiert werden soll.

importObjectOptional

Ein Objekt, das die Werte enthält, die in die neu erstellte Instance importiert werden sollen, wie z. B. Funktionen oder WebAssembly.Memory Objekte. Es muss eine übereinstimmende Eigenschaft für jeden deklarierten Import von module vorhanden sein, andernfalls wird ein WebAssembly.LinkError ausgelöst.

Ausnahmen

Beispiele

Synchrone Instanziierung eines WebAssembly-Moduls

Die WebAssembly.Instance() Konstruktorfunktion kann aufgerufen werden, um ein angegebenes WebAssembly.Module Objekt synchron zu instanziieren, zum Beispiel:

js
const importObject = { my_namespace: { imported_func(arg) { console.log(arg); }, }, }; fetch("simple.wasm") .then((response) => response.arrayBuffer()) .then((bytes) => { const mod = new WebAssembly.Module(bytes); const instance = new WebAssembly.Instance(mod, importObject); instance.exports.exported_func(); }); 

Die bevorzugte Methode, um eine Instance zu erhalten, ist jedoch die Verwendung der asynchronen WebAssembly.instantiateStreaming() Funktion, zum Beispiel so:

js
const importObject = { my_namespace: { imported_func(arg) { console.log(arg); }, }, }; WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then( (obj) => obj.instance.exports.exported_func(), ); 

Spezifikationen

Specification
WebAssembly JavaScript Interface
# dom-instance-instance

Browser-Kompatibilität

Siehe auch