Result<T, E>

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

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

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

請注意,如果您導入具有 Result 的 JS 函式,您需要在導入上註解 #[wasm_bindgen(catch)](與導出的函式不同,後者不需要額外的註解)。未來可能不需要這樣做,它可能會「照原樣」工作!