Add support for #[wasm_bindgen] on async fn (#1754)

This commit adds support to attach `#[wasm_bindgen]` on an `async fn`
which will change the return value into a `Promise` in JS. This in
theory has the exact same semantics as an `async` function in JS where
you call it with all the arguments, nothing happens and you get a
promise back, and then later the promise actually resolves.

This commit also adds a helper trait, `IntoJsResult`, to allow `async`
functions with multiple kinds of return values instead of requiring
everything to be `Result<JsValue, JsValue>`.
This commit is contained in:
Alex Crichton
2019-09-06 13:47:16 -05:00
committed by GitHub
parent 7fd6702c6d
commit 88618116ac
10 changed files with 236 additions and 18 deletions

View File

@ -713,6 +713,7 @@ fn function_from_decl(
ret,
rust_attrs: attrs,
rust_vis: vis,
r#async: sig.asyncness.is_some(),
},
method_self,
))