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>` 将把错误转换为字符串并抛出该字符串。