use async_observable::Observable; use async_std::task::spawn; #[async_std::main] async fn main() { let mut observable = Observable::new(0); let mut tasks = vec![]; for i in 0..10 { let mut fork = observable.clone(); tasks.push(spawn(async move { let update = fork.next().await; println!( "Task {} was notified about updated observable {}", i, update ); })); } observable.publish(1); for t in tasks { t.await } }