Ale*_*lov 3 javascript exception internet-connection apollo apollo-client
ApolloError有networkError属性,但当服务器响应 4** 或 5** 状态代码时设置它。
以及如何检查问题是否是由网络连接不良引起的?
try {
apolloClient.query(someQuery)
} catch (error) {
if (isInternetConnectionError(error)) { // how to check this?
Alert.alert('Please check your internet connection!')
} else {
logException(error);
}
}
Run Code Online (Sandbox Code Playgroud)
似乎没有好的方法来实现这一点(阿波罗干得好),但这正是没有互联网时出现的错误状态:
export const isNetworkError = (error: unknown) => {
return (
error instanceof ApolloError &&
error.message === 'Network request failed' &&
error.graphQLErrors.length === 0 &&
error.clientErrors.length === 0 &&
error.networkError &&
Object.keys(error.networkError).length === 0
);
};
Run Code Online (Sandbox Code Playgroud)
相关于"@apollo/client": "3.4.7"
或者这里有一个更短的版本应该可以工作:
export const isNetworkError = (error: unknown) => {
return (
error instanceof ApolloError &&
error.message === 'Network request failed'
);
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |