WebAssembly.Module.exports()
WebAssembly.Module.exports() 靜態方法返回一個數組,其中包含給定 Module 的所有已宣告匯出的描述。
語法
js
WebAssembly.Module.exports(module)
引數
module-
一個
WebAssembly.Module物件。
返回值
一個包含表示給定模組的匯出函式的物件的陣列。
異常
如果 module 不是 WebAssembly.Module 物件例項,則會丟擲 TypeError。
示例
使用匯出
以下示例(請參閱我們在 GitHub 上的 index-compile.html 演示,以及 線上檢視)使用 WebAssembly.compileStreaming() 方法編譯載入的 simple.wasm 位元組碼,然後使用 worker 和 postMessage() 將其傳送到工作執行緒。
js
const worker = new Worker("wasm_worker.js");
WebAssembly.compileStreaming(fetch("simple.wasm")).then((mod) =>
worker.postMessage(mod),
);
在 worker 中(請參閱 wasm_worker.js),我們為模組定義了一個匯入物件,然後設定了一個事件處理程式以接收來自主執行緒的模組。當接收到模組時,我們使用 WebAssembly.Instantiate() 方法從中建立一個例項,呼叫其中匯出的函式,然後展示如何使用 WebAssembly.Module.exports 在模組上返回有關可用匯出的資訊。
js
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]);
};
exports[0] 輸出如下所示
js
{ name: "exported_func", kind: "function" }
規範
| 規範 |
|---|
| WebAssembly JavaScript 介面 # dom-module-exports |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。