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 größerer Module aufwendig sein kann, sollten Entwickler den Instance() Konstruktor nur verwenden, wenn eine synchrone Instanziierung absolut erforderlich ist; die asynchrone Methode WebAssembly.instantiateStreaming() 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 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() Konstrukturfunktion 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();
  });

Die bevorzugte Methode, um eine Instance zu erhalten, ist jedoch über die asynchrone Funktion WebAssembly.instantiateStreaming(), 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