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, das eine zustandsbehaftete, ausführbare Instanz eines WebAssembly.Module ist.

Syntax

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

js
new WebAssembly.Instance(module, importObject);

Parameter

module

Das zu instanziierende WebAssembly.Module-Objekt.

importObject Optional

Ein Objekt, das die in die neu erstellte Instance zu importierenden Werte enthält, wie Funktionen oder WebAssembly.Memory-Objekte. Für jeden deklarierten Import von module muss eine übereinstimmende Eigenschaft vorhanden sein, andernfalls wird ein WebAssembly.LinkError ausgelöst.

Ausnahmen

Beispiele

Synchrone Instanziierung eines WebAssembly-Moduls

Die WebAssembly.Instance() Konstruktionsfunktion kann aufgerufen werden, um ein gegebenes 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();
  });

Der bevorzugte Weg, 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

BCD tables only load in the browser

Siehe auch