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>> 並拋出適當的 JsValueResult<(), impl Debug> 會將錯誤轉換為字串並拋出該字串。