Apollo Client:从有错误的查询中检索结果

Apollo Client: retrieving the results from a query with errors

我正在使用 GraphQL Apollo 客户端。我正在尝试从有错误的查询中检索结果。

GraphQL response

如何检索数据,即使在同一响应中返回错误?

这会自动捕获错误。相反,我希望它访问数据。

this.client.query({
  query: gql(query),
  variables: variables
}).then(function ({ data }) {
  return data;
}).catch(error => console.log(error));

在 Apollo 文档中找不到任何关于此的内容。有什么想法吗?

如果你以后在这里跌跌撞撞

在Apollo-client中有多种错误类型如下: 1. GraphQL 错误, 2.服务器错误, 3.交易错误, 4. UI 错误, 5. Apollo 客户端错误。 作为@Alexander Schoonderwaldt,您可以了解此错误和错误政策 here

您可以使用下面的代码 handle/catch graphql 错误。如果值 returns undefined,则不再是 graphql 错误。你需要调查。您可能遇到 returns Error CONNREFUSED 或其他网络错误。

    .query({
      query: myquery
    })
    .then(({ data }) => {
      console.log(data.user);
      return { loggedInUser: data };
    })
    .catch(errors => {
      // Fail gracefully
      console.log(errors.message); // log grapgql error
      return { loggedInUser: {} };
    });