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 物件。
異常
- 如果
bufferSource不是型別化陣列 或ArrayBuffer,則 promise 會拒絕並丟擲TypeError。 - 如果編譯失敗,則 promise 會拒絕並丟擲
WebAssembly.CompileError。
示例
使用 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 的瀏覽器中載入。