WebAssembly.Tag
**WebAssembly.Tag** 物件定義了 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 模組可能會像下面這樣匯入標籤
wasm
(module
(import "extmod" "exttag" (tag $tagname (param i32 f32))
)
如果標籤用於丟擲傳播到 JavaScript 的異常,我們可以使用標籤來檢查其值。
**注意:**還有許多其他方法。我們也可以使用標籤來建立WebAssembly.Exception,並從 WebAssembly 呼叫的函式中丟擲它。
規範
| 規範 |
|---|
| WebAssembly JavaScript 介面:異常處理 # 標籤 |
瀏覽器相容性
BCD 表格僅在瀏覽器中載入