WebAssembly.module.exports
WebAssembly.module.exports
这是一项
实验技术
在使用此产品之前,请仔细检查浏览器兼容性表。
该WebAssembly.exports()
函数返回一个包含给定的所有声明导出的描述的数组Module
。
语法
var exports = WebAssembly.Module.exports(module
参数
_module_A WebAssembly.Module
object.
返回值
包含表示给定模块的导出函数的对象的数组。
异常
如果模块不是WebAssembly.Module
对象实例,则抛出TypeError
。
示例
以下示例(请参阅我们在GitHub上的index-compile.html演示,也可以现场查看)使用该WebAssembly.compile()
函数编译加载的simple.wasm字节代码,然后使用postMessage()将其发送给工作人员。
var worker = new Worker("wasm_worker.js"
fetch('simple.wasm').then(response =>
response.arrayBuffer()
).then(bytes =>
WebAssembly.compile(bytes)
).then(mod =>
worker.postMessage(mod)
在worker中(见wasm_worker.js
),我们定义一个要使用的模块的导入对象,然后设置一个事件处理程序来接收来自主线程的模块。当模块被接收到时,我们使用WebAssembly.Instantiate()
方法从它创建一个实例,从里面调用一个导出的函数,然后显示我们如何用WebAssembly.Module.exports
返回一个模块上可用的导出信息。
var importObject = {
imports: {
imported_func: function(arg) {
console.log(arg
}
}
};
onmessage = function(e) {
console.log('module received from main thread'
var mod = e.data;
WebAssembly.instantiate(mod, importObject).then(function(instance) {
instance.exports.exported_func(
}
var exports = WebAssembly.Module.exports(mod
console.log(exports[0]
};
该exports[0]
输出如下所示:
{ name: "exported_func", kind: "function" }
规范
Specification | Status | Comment |
---|---|---|
Web Assembly JavaScript APIThe definition of 'exports()' in that specification. | Draft | Initial draft definition. |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 57 | 16 | 522 | No | 44 | 11 |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | 57 | 57 | (Yes)1 | 522 | No | ? | 11 |