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