Javascript 在catch块中获取响应

Javascript 在catch块中获取响应,javascript,reactjs,graphql,react-apollo,apollo-client,Javascript,Reactjs,Graphql,React Apollo,Apollo Client,我正在从graphql端点发送数据和错误(架构是在Graphene中创建的)。我查询的方式是使用client.query方法(在ApolloHOC中使用时作为道具提供) 我的做法是: let result = this.props.client.query({ query: query, variables: {}, fetchPolicy: this.state.fetchPolicy }) .then(r

我正在从graphql端点发送
数据
错误
(架构是在
Graphene
中创建的)。我查询的方式是使用
client.query
方法(在ApolloHOC中使用
时作为道具提供)

我的做法是:

    let result = this.props.client.query({
        query: query,
        variables: {},
        fetchPolicy: this.state.fetchPolicy
        })
        .then(result => this.handle_data(result.data))
        .catch((e) => {
            alert("Hello"+e);
        });

当服务器中出现错误时(由于某些错误查询),我将以
null
errors
的形式发送
数据
,并设置实际的错误消息。然后在这里执行
catch
块。
e
的值不是我从服务器发送的
错误。如何获取我在
catch
块中发送的服务器响应(就像我们进入
然后
块)?

与Apollo一起使用,然后在配置中添加错误策略:“忽略”,如下所示:

const result = await client.query({
      query: getQuery(fieldArgs),
      variables: { filters: [...filters] },
      errorPolicy: 'ignore',
    });

与Apollo一起使用,然后在配置中添加错误策略:“忽略”,如下所示:

const result = await client.query({
      query: getQuery(fieldArgs),
      variables: { filters: [...filters] },
      errorPolicy: 'ignore',
    });

我假设错误的查询将导致业务异常,但不会导致服务器异常。业务异常可能不会在catch中被捕获block@brk
result=schema.execute(query)
将自动填充
result.data
result.errors
。我也检查过了。因此,这意味着获取的响应将同时包含
数据
错误
。在客户机中,执行catch块。我能在catch块中得到响应对象吗?错误在哪里抛出?在client.query()中?如果是这样,那么这就是Apollo客户端抛出的错误,根据API(\.query)@FinbarrO'B yes,它只包含错误,没有数据!你说得对。感谢您提出这个问题。我假设错误的查询将导致业务异常,但不会导致服务器异常。业务异常可能不会被捕获到block@brk
result=schema.execute(query)
将自动填充
result.data
result.errors
。我也检查过了。因此,这意味着获取的响应将同时包含
数据
错误
。在客户机中,执行catch块。我能在catch块中得到响应对象吗?错误在哪里抛出?在client.query()中?如果是这样,那么这就是Apollo客户端抛出的错误,根据API(\.query)@FinbarrO'B yes,它只包含错误,没有数据!你说得对。谢谢你提起这件事。