use std::time::Duration; use async_std::future::timeout; use async_std::task; #[cfg(target_arch = "wasm32")] wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser); #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)] fn timeout_future_many() { task::block_on(async { let futures = (0..100) .map(|i| { timeout(Duration::from_millis(i * 10), async move { task::sleep(Duration::from_millis(i)).await; Ok::<(), async_std::future::TimeoutError>(()) }) }) .collect::>(); for future in futures { future.await.unwrap().unwrap(); } }); }