我是 GraphQL 新手,需要一些帮助...
正如我所见,GraphQL 中有很多组件,例如 Query、Mutation 和 Subscription。在 Angular Apollo Client 中,我有两种处理 Query 的方法:apollo.query 和 apollo.watchQuery。据我了解,当 watchQuery 不断监视更新时,查询方法仅获取一次数据。如果是这样,watchQuery 和 GraphQl 订阅有什么区别?
我是 GraphQL 新手,需要一些帮助...
正如我所见,GraphQL 中有很多组件,例如 Query、Mutation 和 Subscription。在 Angular Apollo Client 中,我有两种处理 Query 的方法:apollo.query 和 apollo.watchQuery。据我了解,当 watchQuery 不断监视更新时,查询方法仅获取一次数据。如果是这样,watchQuery 和 GraphQl 订阅有什么区别?
正如官方阿波罗文档中所述:“GraphQL 订阅是一种将数据从服务器推送到选择监听来自服务器的实时消息的客户端的方式。订阅类似于查询,因为它们指定了一组字段交付给客户端,但不是立即返回单个答案,而是每次在服务器上发生特定事件时发送结果。”
所以订阅只是监听来自后端的一些推送更改,相反,watchQuery 是一个查询,只要该查询将被重新获取或与该查询相关的数据从其他任何地方发生更改,此方法将继续发出更新的数据。
我不知道您是否将 watchQuery 与“实时查询”混淆,但尚不支持实时查询。