async-graphql/docs/zh-CN/src/subscription.md
2021-03-09 22:34:29 +09:00

24 lines
802 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 订阅
订阅根对象和其它根对象定义稍有不同它的Resolver函数总是返回一个 [Stream](https://docs.rs/futures-core/~0.3/futures_core/stream/trait.Stream.html) 或者`Result<Stream>`,而字段参数通常作为数据的筛选条件。
下面的例子订阅一个整数流,它每秒产生一个整数,参数`step`指定了整数的步长默认为1。
```rust
use async_graphql::*;
struct Subscription;
#[Subscription]
impl Subscription {
async fn integers(&self, #[graphql(default = 1)] step: i32) -> impl Stream<Item = i32> {
let mut value = 0;
tokio_stream::wrappers::IntervalStream::new(tokio::time::interval(Duration::from_secs(1)))
.map(move |_| {
value += step;
value
})
}
}
```