我想像这样编写 JavaScript:
var [greeting, err] = wasm.hello("world");
看来,如果我使用标准Result
类型,那么我需要使用try
/ catch
:
try {
greeting = wasm.hello()
}
catch(error) {
console.error(error);
}
产生错误的 Rust 代码:
#[wasm_bindgen]
pub fn hello(name: &str) -> Result<String, JsValue> {
if name == "" {
return Err(JsValue::from("name required!"));
}
let greeting = format!("Hello {}!", name);
Ok(greeting)
}
这是基于rust-parcel-template中的示例。带有 Rust + WASM + JS 的完整 web 应用程序以及上面的小示例位于GitHub 上。