Rust / Webassembly / wasm-bindgen-从``js_sys''Promise获取值

卢卡·塞普(Luca Sepe)

我正在玩wasm-bindgenhttps://github.com/rustwasm/wasm-bindgen),只是出于好奇。

在玩Navigatorweb_syscrate)时,我偶然发现了这种方法:

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

它返回一个Result<Promise, JsValue>..now,我是Rust新手,我的问题是我该如何获取the的值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 
   }
}

祝一切顺利,卢卡

米尔格纳

对WASM-BindGen对网站提供的官方文件

简而言之,您可以wasm_bindgen_futures::JsFuture::from(promise).await?用来检索Promise的结果并继续使用常规的Rustasync功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 wasm bindgen 從 Nodejs-WebAssembly 中的 Rust 函數返回字符串?

使用对象参数导入 js 函数 - Rust / wasm_bindgen

如何在WASM-Bindgen和Rust中实际获取响应正文的文本

带字符串的 Rust wasm-bindgen 结构

将对象添加到向量中时,Rust wasm_bindgen对象在JS端变为null

使用wasm-bindgen对大型锈对象进行Js绑定

如何在Rust中的wasm_bindgen函数中发出HTTP请求?

如何通过wasm-bindgen将对象数组传递给WebAssembly并将其转换为结构向量?

什么是WebAssembly(Wasm)模块?

从WebAssembly .wasm模块获取JavaScript导入对象条目

如何使用 wasm-bindgen - 导入具有多个模块级别的 js

如何将Rust与wasm-bindgen一起使用,以创建一个带有状态的另一个闭包的闭包?

为什么Rust WASM指针和JS指针的值不同?

如何在 Wasm (Rust) 中访问 JS 对象属性?

wasm-bindgen - 可以识别构建版本/日期吗?

如何调用wasm-bindgen模块的JavaScript函数?

`*arg0` 的寿命不够长 - wasm_bindgen

Rust bindgen无法找到平台特定的库?

在Ubuntu上编译rust-bindgen

添加 Rust 和 Webassembly

如何将WebAssembly.Memory对象传递给从胶水.js文件实例化的WASM模块?

使用 Rust bindgen 链接头文件的问题

我编译成 wasm 的 Rust 代码比 js 慢,我做错了什么?

如何将嵌套的Vecs与wasm-bindgen一起使用?

FromWasmAbi 没有为 fn(SomeStruct) 实现,而 SomeStruct 是 #[wasm_bindgen]

如何使用wasm-bindgen将Vec作为类型化数组返回?

如何使用Vec <T>作为返回类型并使用wasm_bindgen在Javascript中使其可读

如何使用Rust生成最小的wasm文件?

chrono杀死了我的Rust WebAssembly函数