Expand description
Converting between JavaScript Promises to Rust Futures.
This crate provides a bridge for working with JavaScript Promise types as
a Rust Future, and similarly contains utilities to turn a rust Future
into a JavaScript Promise. This can be useful when working with
asynchronous or otherwise blocking work in Rust (wasm), and provides the
ability to interoperate with JavaScript events and JavaScript I/O
primitives.
There are three main interfaces in this crate currently:
-
A type that is constructed with a
Promiseand can then be used as aFuture<Output = Result<JsValue, JsValue>>. This Rust future will resolve or reject with the value coming out of thePromise. -
Converts a Rust
Future<Output = Result<JsValue, JsValue>>into a JavaScriptPromise. The future’s result will translate to either a resolved or rejectedPromisein JavaScript. -
Spawns a
Future<Output = ()>on the current thread. This is the best way to run aFuturein Rust without sending it to JavaScript.
These three items should provide enough of a bridge to interoperate the two systems and make sure that Rust/JavaScript can work together with asynchronous and I/O work.
Re-exports§
pub use js_sys;pub use wasm_bindgen;
Modules§
- stream
futures-core-03-stream - Converting JavaScript
AsyncIterators to RustStreams.
Structs§
- JsFuture
- A Rust
Futurebacked by a JavaScriptPromise.
Functions§
- future_
to_ promise - Converts a Rust
Futureinto a JavaScriptPromise. - spawn_
local - Runs a Rust
Futureon the current thread.
Attribute Macros§
- wasm_
bindgen - A list of all the attributes can be found here: https://wasm-bindgen.github.io/wasm-bindgen/reference/attributes/index.html