首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WebAssembly.module.exports

这是一项 实验技术

在使用此产品之前,请仔细检查浏览器兼容性表。

WebAssembly.exports()函数返回一个包含给定的所有声明导出的描述的数组Module

语法

代码语言:javascript
复制
var exports = WebAssembly.Module.exports(module);

参数

_module_A WebAssembly.Module object.

返回值

包含表示给定模块的导出函数的对象的数组。

异常

如果模块不是WebAssembly.Module对象实例,则抛出TypeError

示例

以下示例(请参阅我们在GitHub上的index-compile.html演示,也可以现场查看)使用该WebAssembly.compile()函数编译加载的simple.wasm字节代码,然后使用postMessage()将其发送给工作人员

代码语言:javascript
复制
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返回一个模块上可用的导出信息。

代码语言:javascript
复制
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]输出如下所示:

代码语言:javascript
复制
{ 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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com