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