错误链接
在 GraphQL 网络栈中处理和检查错误。
使用onError
链接在发生 GraphQL 或网络错误时执行自定义逻辑。您将此链接传递给一个在操作返回一个或多个错误时执行的函数:
import { onError } from "@apollo/client/link/error";// Log any GraphQL errors or network error that occurredconst errorLink = onError(({ graphQLErrors, networkError }) => {if (graphQLErrors)graphQLErrors.forEach(({ message, locations, path }) =>console.log(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`));if (networkError) console.log(`[Network error]: ${networkError}`);});
此函数在GraphQL操作完成并且执行返回到GraphQL操作后调用,执行正在向上返回到链接链。除非你想重试操作,该函数不应该返回值。
选项
你提供的具有onError
链接的函数接受一个包含以下字段的对象:
名称 类型 | 描述 |
---|---|
| 产生错误的GraphQL操作的详细信息。 |
| 来自服务器的(可能已修改的)GraphQL结果,由链中下一个链接传递(即,更接近终止链接的链接)。 |
| 在执行操作期间发生的GRAPHQL错误数组(如果有)。 |
| 在尝试执行操作期间发生的网络错误(如果有)。 |
| 一个调用链中下一个链接的函数。在 |
错误分类
错误作为networkError
传递,如果链中更远的链接在可观察对象上调用error
回调。在大多数情况下,graphQLErrors
是最后一次next
调用结果的errors
字段的别名。
networkError
可能包含附加字段,例如在HTTP状态码失败的情况下包含GraphQL对象。在这种情况下,如果该属性存在,graphQLErrors
是别名于networkError.result.errors。