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)]
註解(與匯出的函式不同,後者不需要額外的註解)。然而,這在未來可能不是必要的,並且可能會「原樣」運作!