Luc*_*epe 5 promise rust webassembly wasm-bindgen
我正在玩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>..now,我是 Rust 新手,我的问题是如何获取 的值Promise?
效果如何Closure::wrap?如何使用then方法来获取结果?
我想知道是否有人可以好心地向我解释如何处理Promise
这是一个返回 a 的示例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
}
}
Run Code Online (Sandbox Code Playgroud)
祝你一切顺利,卢卡
wasm-bindgen 站点上有官方文档。
简而言之,您可以用来wasm_bindgen_futures::JsFuture::from(promise).await?检索 Promise 的结果并继续使用通常的 Rustasync功能。