async-graphql/docs/en/src/subscription.md

23 lines
741 B
Markdown
Raw Normal View History

2020-04-15 03:15:30 +00:00
# Subscription
2020-05-09 20:56:15 +00:00
2020-05-13 04:49:43 +00:00
The definition of the subscription root object is slightly different from other root objects. Its resolver function always returns a Stream, and the field parameters are usually used as data filtering conditions.
2020-05-09 20:56:15 +00:00
The following example subscribes to an integer stream, which generates one integer per second. The parameter step specifies the integer step size with a default of 1
```rust
use async_graphql::*;
struct Subscription;
#[Subscription]
impl Subscription {
async fn integers(&self, #[arg(default = "1")] step: i32) -> impl Stream<Item = i32> {
let mut value = 0;
tokio::time::interval(Duration::from_secs(1)).map(move |_| {
value += step;
value
})
}
}
```