Function wasm_bindgen_futures::future_to_promise
source · pub fn future_to_promise<F>(future: F) -> Promisewhere
F: Future<Output = Result<JsValue, JsValue>> + 'static,
Expand description
Converts a Rust Future
into a JavaScript Promise
.
This function will take any future in Rust and schedule it to be executed,
returning a JavaScript Promise
which can then be passed to JavaScript.
The future
must be 'static
because it will be scheduled to run in the
background and cannot contain any stack references.
The returned Promise
will be resolved or rejected when the future completes,
depending on whether it finishes with Ok
or Err
.
Panics
Note that in wasm panics are currently translated to aborts, but “abort” in this case means that a JavaScript exception is thrown. The wasm module is still usable (likely erroneously) after Rust panics.
If the future
provided panics then the returned Promise
will not
resolve. Instead it will be a leaked promise. This is an unfortunate
limitation of wasm currently that’s hoped to be fixed one day!