WebAssembly.Module.exports()
WebAssembly.Module.exports()
静态方法返回一个数组,其中包含给定 Module
的所有已声明导出项的描述。
语法
js
WebAssembly.Module.exports(module)
参数
模块
-
一个
WebAssembly.Module
对象。
返回值
一个包含代表给定模块导出函数的对象的数组。
异常
如果 module 不是 WebAssembly.Module
对象实例,则会抛出 TypeError
。
示例
使用导出项
以下示例(请参阅 GitHub 上的 index-compile.html 演示,以及 在线查看)使用 WebAssembly.compileStreaming()
方法编译加载的 simple.wasm 字节码,然后使用 postMessage() 将其发送到 worker。
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]
的输出如下所示
json
{ "name": "exported_func", "kind": "function" }
规范
规范 |
---|
WebAssembly JavaScript 接口 # dom-module-exports |
浏览器兼容性
加载中…