Как обрабатывать ошибки Rust из Result как возвращаемое значение вместо исключения в JavaScript? - PullRequest
1 голос
/ 21 апреля 2019

Я хотел бы написать JavaScript как:

var [greeting, err] = wasm.hello("world");

Похоже, что если я использую стандартный тип Result, то мне нужно использовать try / catch:

try {
  greeting = wasm.hello()
}
catch(error) {
  console.error(error);
}

Код ржавчины, который генерирует ошибку:

#[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 с небольшим примером выше находится на GitHub .

...