pub fn Await<T, Fut, Chil, V>(
props: AwaitProps<T, Fut, Chil, V>,
) -> impl IntoViewExpand description
Allows you to inline the data loading for an async block or
server function directly into your view. This is the equivalent of combining a
[create_resource] that only loads once (i.e., with a source signal || ()) with
a Suspense with no fallback.
Adding let:{variable name} to the props makes the data available in the children
that variable name, when resolved.
async fn fetch_monkeys(monkey: i32) -> i32 {
// do some expensive work
3
}
view! {
<Await
future=fetch_monkeys(3)
let:data
>
<p>{*data} " little monkeys, jumping on the bed."</p>
</Await>
}§Required Props
- future: [
Fut]- A
Futurethat will the component will.awaitbefore rendering.
- A
- children: [
Chil]-
A function that takes a reference to the resolved data from the
futurerenders a view.§Syntax
This can be passed in the
viewchildren of the<Await/>by using thelet:syntax to specify the name for the data variable.view! { <Await future=fetch_monkeys(3) let:data > <p>{*data} " little monkeys, jumping on the bed."</p> </Await> }is the same as
view! { <Await future=fetch_monkeys(3) children=|data| view! { <p>{*data} " little monkeys, jumping on the bed."</p> } /> }
-
§Optional Props
- blocking:
bool- If
true, the component will create a blocking resource, preventing the HTML stream from returning anything beforefuturehas resolved.
- If