WebAssembly.Tag
Baseline 廣泛可用 *
WebAssembly.Tag 物件定義了可以從 WebAssembly 程式碼丟擲到 WebAssembly 程式碼的 WebAssembly 異常的型別。
建立 WebAssembly.Exception 時,標籤定義了異常攜帶的值的資料型別和順序。必須使用相同的唯一標籤例項來訪問異常的值(例如,在使用 Exception.prototype.getArg() 時)。
例項化 Tag 時會建立新的唯一標籤。此標籤可以作為匯入項傳遞給 WebAssembly 模組,在那裡它將成為 WebAssembly 模組標籤部分中定義的型別化標籤。您也可以匯出模組中定義的標籤,並使用它來檢查從模組丟擲的異常。
注意: 您無法訪問具有相同引數但卻是不同標籤的異常的值!這可確保 WebAssembly 模組在需要時可以保持異常資訊內部化。程式碼仍然可以捕獲並重新丟擲它不理解的異常。
建構函式
WebAssembly.Tag()-
建立一個新的
WebAssembly.Tag物件。
例項方法
Tag.prototype.type()-
返回在建構函式中設定的、定義標籤資料型別陣列的物件。
示例
此程式碼片段建立了一個新的 Tag 例項。
js
const tagToImport = new WebAssembly.Tag({ parameters: ["i32", "f32"] });
下面的程式碼片段展示瞭如何在例項化時使用“匯入物件”將其傳遞給 example.wasm 模組。
js
const importObject = {
extmod: {
exttag: tagToImport,
},
};
WebAssembly.instantiateStreaming(fetch("example.wasm"), importObject).then(
(obj) => {
// …
},
);
WebAssembly 模組隨後可以按如下方式匯入該標籤
wat
(module
(import "extmod" "exttag" (tag $tagname (param i32 f32))
)
如果該標籤用於丟擲傳播到 JavaScript 的異常,我們可以使用該標籤來檢查其值。
注意: 有許多替代方法。我們還可以使用該標籤建立 WebAssembly.Exception 並從 WebAssembly 呼叫的函式中丟擲它。
規範
| 規範 |
|---|
| WebAssembly JavaScript 介面:異常處理 # tag |
瀏覽器相容性
載入中…