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)]
进行注释(与导出的函数不同,后者不需要额外的注释)。但这在未来可能不是必需的,并且可能会“按原样”工作!