mirror of
https://github.com/async-rs/async-std.git
synced 2025-01-21 04:53:50 +00:00
27 lines
686 B
Rust
27 lines
686 B
Rust
//! Spawns a timed task which gets throttled.
|
|
|
|
fn main() {
|
|
#[cfg(feature = "unstable")]
|
|
{
|
|
use async_std::prelude::*;
|
|
use async_std::task;
|
|
|
|
task::block_on(async {
|
|
use async_std::stream;
|
|
use std::time::Duration;
|
|
|
|
// emit value every 1 second
|
|
let s = stream::interval(Duration::from_secs(1)).enumerate();
|
|
|
|
// throttle for 2 seconds
|
|
let s = s.throttle(Duration::from_secs(2));
|
|
|
|
s.for_each(|(n, _)| {
|
|
dbg!(n);
|
|
})
|
|
.await;
|
|
// => 0 .. 1 .. 2 .. 3
|
|
// with a pause of 2 seconds between each print
|
|
})
|
|
}
|
|
}
|