Пытаюсь освоить Связку Tauri и sycamore-rs, споткнулся на таком моменте
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = ["window", "__TAURI__", "tauri"])]
async fn invoke(cmd: &str, args: JsValue) -> JsValue;
#[wasm_bindgen(js_namespace = console)]
fn log(s: &str);
}
let greet = move |e: Event| {
e.prevent_default();
spawn_local_scoped(cx, async move {
let result = invoke("run_command",
to_value(&CommandArgs { command: &command.get(),
ip: &ip.get(),
password: &password.get()})
.unwrap()).await;
command_msg.set(result.as_string().unwrap());
})
};
Этот код работает как положено, если возвращается Ok(format!("{}", a)), но Если возвращается Err(format!("Exited with status {}",e)) , то я в консоли получаю:
"Unhandled Promise Rejection: RuntimeError: Unreachable code should not be executed "
И в целом понятно почему это появляется, НО КАК это обработать по АНАЛОГИИ с JS
async function run_command() {
let elem = document.getElementById("result")
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
try {
let ms = await invoke("run_command", { command: command(), ip:ip(), password:password()})
setRespMsg(ms);
elem.classList.remove("error");
elem.classList.add("success");
}
catch (e) {
setRespMsg(e);
elem.classList.remove("success");
elem.classList.add("error");
}
}
Опробованные варианты перечислять не стану их было очень много, если у кого то есть опыт в данном направлении, подскажите, буду благодарен!