pub fn future_to_promise<F>(future: F) -> Promise
where 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!