mirror of
https://github.com/DioxusLabs/dioxus
synced 2024-11-27 14:40:44 +00:00
989 B
989 B
Suspense, Async, and More
This doc goes into the design of asynchronicity in Dioxus.
for UI elements
suspend
-ing a future submits an &mut future to Dioxus. the future must return VNodes. the future is still waiting before the component renders, the .await
is dropped and tried again. users will want to attach their future to a hook so the future doesn't really get dropped.
for tasks
for more general tasks, we need some way of submitting a future or task into some sort of task system.
use_task()
submits a future to Dioxus. the future is polled infinitely until it finishes. The caller of use_task
may drop, pause, restart, or insert a new the task
let task = use_hook(|| {
// create the future
}, || {
update the future if it needs to be updated
}, || {
});
cx.poll_future()
// let recoil_event_loop = cx.use_task(move |_| async move {
// loop {
// let msg = receiver.await?;
// }
// });
// where suspend wraps use_task