WebAssembly.Instance() Konstruktor - WebAssembly | MDN

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserübergreifend verfügbar.

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

Warnung: Da die Instanziierung großer Module kostspielig sein kann, sollten Entwickler den Instance()-Konstruktor nur dann verwenden, wenn eine synchrone Instanziierung unbedingt erforderlich ist; die asynchrone Methode WebAssembly.instantiateStreaming() 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.

importObject Optional

Ein Objekt, das die Werte enthält, die in die neu erstellte Instance importiert werden sollen, wie Funktionen oder WebAssembly.Memory Objekte. Für jeden deklarierten Import des module muss eine passende Eigenschaft 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 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 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

Spezifikation
WebAssembly JavaScript Interface
# dom-instance-instance

Browser-Kompatibilität

Siehe auch

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.