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 表格僅在瀏覽器中載入

另請參閱