Baseline Widely available
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.
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.
TypeError
ausgelöst.WebAssembly.CompileError
, WebAssembly.LinkError
oder WebAssembly.RuntimeError
ausgelöst.RangeError
auslösen, da sie die Kompilierung und Instanziierung von Wasm mit groÃen Puffern im UI-Thread verbieten.Die WebAssembly.Instance()
Konstruktorfunktion kann aufgerufen werden, um ein gegebenes WebAssembly.Module
Objekt synchron zu instanziieren, zum Beispiel:
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:
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
(obj) => obj.instance.exports.exported_func(),
);
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4