【发布时间】:2019-01-22 13:25:20
【问题描述】:
我正在尝试获取在 Apollo Server 2 中工作的订阅的解析器。当订阅是顶级字段时(即直接在 schema 根目录下的 Subscription 下),订阅工作。
但是,如果订阅包含在另一个 type 中,我总是在客户端的 websocket 连接上收到错误 Subscription field must return Async Iterable. Received: undefined -- 永远不会执行服务器的解析器。
即此架构有效:
type Subscription {
postAdded: Post
}
但这个没有:
type Subscription {
post: PostSubscription
}
type PostSubscription {
postAdded: Post
}
第二种情况的解析器看起来像这样,但我尝试了很多不同的变体,但都没有成功:
Subscription: {
post: () => ({
PostSubscription: {}
})
},
PostSubscription: {
postAdded: {
subscribe: () => pubSub.asyncIterator(['postAdded'])
}
}
【问题讨论】:
-
感谢您发布此问题,我们遇到了完全相同的行为,我帮了我们一个忙,并在此处复制您的问题:github.com/apollographql/graphql-subscriptions/issues/169
标签: graphql apollo apollo-server