Как обрабатывать ошибки Rust из Result как возвращаемое значение вместо исключения в JavaScript?

Я хотел бы написать 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)
}

Это основано на примере в https://github.com/rustwasm/rust-parcel-template. Полное веб-приложение с Rust + WASM + JS с небольшим примером выше находится на GitHub.

0 ответов

Другие вопросы по тегам