WebAssembly.compile()

**WebAssembly.compile()** 静态方法将 WebAssembly 二进制代码编译成一个WebAssembly.Module 对象。如果必须在模块实例化之前编译模块,此函数很有用(否则,应使用WebAssembly.instantiate() 函数)。

**注意:** 具有严格内容安全策略 (CSP) 的网页可能会阻止 WebAssembly 编译和执行模块。有关允许 WebAssembly 编译和执行的更多信息,请参阅script-src CSP

语法

js
WebAssembly.compile(bufferSource)

参数

bufferSource

包含要编译的 Wasm 模块二进制代码的类型化数组ArrayBuffer

返回值

一个 Promise,解析为表示已编译模块的WebAssembly.Module 对象。

异常

示例

使用 compile

以下示例使用 compile() 函数编译加载的 simple.wasm 字节码,然后使用postMessage() 将其发送到工作线程

js
const worker = new Worker("wasm_worker.js");

fetch("simple.wasm")
  .then((response) => response.arrayBuffer())
  .then((bytes) => WebAssembly.compile(bytes))
  .then((mod) => worker.postMessage(mod));

**注意:** 在大多数情况下,您可能希望使用WebAssembly.compileStreaming(),因为它比 compile() 更高效。

规范

规范
WebAssembly JavaScript 接口
# dom-webassembly-compile

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅