使用apollo从graphql中捕获特定的响应

时间:2018-04-18 10:42:03

标签: apollo react-apollo

在我的应用程序中,我有很多查询和突变,如下所述:

query name1($token: String!){
  session(authToken: $token) {
    user {
      id
    }
  }
}

mutation name2($token: String!){
  session(authToken: $token) {
    getSomething()
  }
}

如果服务器端的会话有问题,我从服务器得到一个响应 - session:null,就可以了。由于许多查询和许多变异,我如何能够捕获这个特定的响应({session:null})并触发一些方法(在我的情况下注销并在localstorage中销毁令牌)。我需要一些通用的解决方案(可能是一些后期软件或类似的东西),而不是在每个查询和变异中捕获该响应。

1 个答案:

答案 0 :(得分:0)

我可以想到两个解决方案:

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