使用 apollo 捕获来自 graphql 的特定响应
Posted
技术标签:
【中文标题】使用 apollo 捕获来自 graphql 的特定响应【英文标题】:Catch specific response from graphql with apollo 【发布时间】:2018-09-28 13:49:15 【问题描述】:在我的应用中,我有许多查询和突变,如下所述:
query name1($token: String!)
session(authToken: $token)
user
id
mutation name2($token: String!)
session(authToken: $token)
getSomething()
如果服务器端的会话有问题,我会从服务器得到响应 - session: null 并且没关系。由于许多查询和许多突变,我如何才能捕捉到这个特定的响应(session: null)并触发一些方法(在我的情况下注销并销毁本地存储中的令牌)。我需要一些通用解决方案(可能是一些后期软件或类似的东西),而不是在每个查询和突变中捕获该响应。
【问题讨论】:
【参考方案1】:我可以想到两种解决方案:
1- 让您的服务器抛出一个错误而不是 null 并使用 apollo-link-error
https://github.com/apollographql/apollo-link/tree/master/packages/apollo-link-error 在您的客户端中捕获该错误
2- 编写一个自定义 Apollo 客户端来查找特定值(session: null)。为此,我建议查看任何可用 Apollo 链接的源代码或查看本教程 https://dev-blog.apollodata.com/creating-a-data-component-with-apollo-link-f0719d8193ee
【讨论】:
以上是关于使用 apollo 捕获来自 graphql 的特定响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jest / apollo 客户端中捕获被拒绝的 graphql 订阅?
如何从 graphql apollo 客户端查询中获取/记录/捕获错误