Rust / Webassembly / wasm-bindgen - получение значений из обещания `js_sys ' - PullRequest
0 голосов
/ 21 марта 2020

Я играю с wasm-bindgen (https://github.com/rustwasm/wasm-bindgen), просто из любопытства.

Во время игры с Navigator (web_sys ящик) я наткнулся на этот метод:

https://docs.rs/web-sys/0.3.36/web_sys/struct.MediaDevices.html#method .enumerate_devices

он возвращает Result<Promise, JsValue> .. теперь я новичок в Rust, и мой вопрос, как я могу получить значение Promise?

Как работает Closure::wrap? Как использовать его с , затем методом для получения результатов?

Интересно, может ли кто-нибудь так любезно объяснить мне, как поступить с Обещанием

Вот пример, который возвращает Promise:

let window = web_sys::window().expect("no global `window` exists");
let navigator = window.navigator();

if let Ok(devs) = navigator.media_devices() {
   if let Ok(prom) = devs.enumerate_devices() {
        //..??? how to list all devices 
   }
}

Всего наилучшего, Лука

1 Ответ

1 голос
/ 21 марта 2020

На сайте wasm-bindgen имеется официальная документация .

Короче говоря, вы можете использовать wasm_bindgen_futures::JsFuture::from(promise).await?, чтобы получить результат обещания и продолжить работу с обычным Rust async функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...