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