WebAssembly.Module.exports()
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.
Die WebAssembly.Module.exports()
statische Methode gibt ein Array zurück, das Beschreibungen aller deklarierten Exporte des angegebenen Module
enthält.
Syntax
WebAssembly.Module.exports(module)
Parameter
module
-
Ein
WebAssembly.Module
Objekt.
Rückgabewert
Ein Array, das Objekte enthält, die die exportierten Funktionen des angegebenen Moduls darstellen.
Ausnahmen
Wenn das Modul nicht eine Instanz eines WebAssembly.Module
Objekts ist, wird ein
TypeError
ausgelöst.
Beispiele
Verwendung von exports
Das folgende Beispiel (siehe unser index-compile.html
Demo auf GitHub, und live ansehen auch)
kompiliert den geladenen simple.wasm Bytecode mit der
WebAssembly.compileStreaming()
Methode und sendet ihn dann an einen worker mit postMessage().
const worker = new Worker("wasm_worker.js");
WebAssembly.compileStreaming(fetch("simple.wasm")).then((mod) =>
worker.postMessage(mod),
);
Im Worker (siehe
wasm_worker.js
)
definieren wir ein Importobjekt für das Modul, dann richten wir einen Ereignishandler ein, um das Modul vom Hauptthread zu empfangen. Sobald das Modul empfangen wird, erstellen wir mit der WebAssembly.Instantiate()
Methode eine Instanz davon, rufen eine exportierte Funktion daraus auf und zeigen dann, wie wir Informationen über die verfügbaren Exporte eines Moduls mit WebAssembly.Module.exports
zurückgeben können.
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
onmessage = (e) => {
console.log("module received from main thread");
const mod = e.data;
WebAssembly.instantiate(mod, importObject).then((instance) => {
instance.exports.exported_func();
});
const exports = WebAssembly.Module.exports(mod);
console.log(exports[0]);
};
Die exports[0]
Ausgabe sieht so aus:
{ name: "exported_func", kind: "function" }
Spezifikationen
Specification |
---|
WebAssembly JavaScript Interface # dom-module-exports |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
exports() static method |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support