如何在 Apollo Client 上自动从网络错误中恢复?

Posted

技术标签:

【中文标题】如何在 Apollo Client 上自动从网络错误中恢复?【英文标题】:How to automatically recover from network errors on Apollo Client? 【发布时间】:2020-01-15 01:39:24 【问题描述】:

我有一个应用程序,我的组织使用它来显示数据。该应用程序使用 React、express、Apollo Server 和 Apollo Client。该应用程序显示来自多个来源的数据,并使用轮询方法来更新数据。当我对代码执行更新并且前端最终尝试执行对更多数据的请求但服务器暂时不可用(例如在构建命令更新代码时 2 分钟或更短时间)时,问题就出现了。这会导致所有仪表板组件显示网络错误。

我的问题,有没有一个很好的解决方案让前端自动恢复,这样我们就不必在每次更新后刷新仪表板?例如继续轮询而不是在网络错误时停止?

【问题讨论】:

【参考方案1】:

听起来Apollo Link Retry 应该做你想做的事。网络故障后会重试

【讨论】:

【参考方案2】:

注意!您必须使用多个 Apollo-Link,然后像使用 WebSocketLink、Http-Link 和 Retry-Link 一样,Retry-Link 必须是 Apollo-Links 数组中的第一个链接。否则将无法正常工作。

【讨论】:

以上是关于如何在 Apollo Client 上自动从网络错误中恢复?的主要内容,如果未能解决你的问题,请参考以下文章

如何在前端 apollo-client 上处理来自 Node/Koa 的后端错误

为啥 apollo-client 的 GraphQL 查询不出现在 Chrome 的 XHR 网络过滤器中?

你如何动态控制 react apollo-client 查询启动?

如何从 graphql apollo 客户端查询中获取/记录/捕获错误

如何在 Android Studio 中从 Apollo Client (GraphQL) 导入生成的类

网络错误:req.headers.forEach Apollo Client Angular4