main
当附加到 main
函数时,此属性将调整它以正确抛出错误(如果可能)。
#[wasm_bindgen(main)] fn main() -> Result<(), JsValue> { Err(JsValue::from("this error message will be thrown")) }
此属性还允许在 Cargo 二进制文件中使用 async fn main()
。
#[wasm_bindgen(main)] async fn main() { // ... future.await; }
此属性仅用于二进制文件或示例的 main
函数。与 #[wasm_bindgen(start)]
不同,它不会导致在库中启动时执行任意函数。
返回类型的支持是仿照 Termination
。支持 ()
和 Infallible
,但不支持 Termination
本身。按顺序,wasm-bindgen 首先检测到 Result<(), impl Into<JsValue>>
,并将抛出正确的 JsValue
,Result<(), impl Debug>
会将错误转换为字符串并抛出。