Result<T, E>

T 參數&T 參數&mut T 參數T 回傳值Option<T> 參數Option<T> 回傳值JavaScript 表示法
T 相同,或一個例外

Result 型別可以從匯出到 JS 的函式以及 Rust 中的閉包回傳。Ok 型別必須能夠轉換為 JS,並且 Err 型別必須實作 Into<JsValue>。每當遇到 Ok(val) 時,它會被轉換為 JS 並傳遞出去,而每當遇到 Err(error) 時,都會在 JS 中拋出一個帶有 error 的例外。

您可以使用 Result 來啟用在 Rust 中使用 ? 來處理 JS 例外,自然地將其向上傳播到 Wasm 邊界。此外,您也可以在 Rust 中回傳自訂型別,只要它們都可以轉換為 JsValue

請注意,如果您匯入一個帶有 Result 的 JS 函式,您需要在匯入時加上 #[wasm_bindgen(catch)] 註解(與匯出的函式不同,後者不需要額外的註解)。然而,這在未來可能不是必要的,並且可能會「原樣」運作!