介绍
apollo-link-retry
是一个用于 Apollo Client 的链接,可用于添加请求重试功能。当您在使用 GraphQL 时,遇到一些需要等待或连接较慢或图表遗漏或只是网络故障的原因,此链接可能会很有用。
本文将介绍如何使用 apollo-link-retry
以及使用示例代码。
安装
您可以通过以下命令在项目中安装 apollo-link-retry
:
npm install apollo-link-retry --save
使用
在使用时,您需要创建一个新的 HttpLink
并将其添加到 apollo-client
中。
以下是示例代码:
-- -------------------- ---- ------- ------ - --------- - ---- -------------------- ------ - -------- - ---- ------------------- ------ - ------------ - ---- ---------------- ----- --------- - --- ----------- ------ - -------- ----- ---- --------- ------- ---- -- --------- - ---- -- -------- ------- ----------- -- ------- -- ---------------- --- --- - --- ----- -------- - --- ---------- ---- ---------- --- ----- ------ - --- -------------- ----- --------------------------- ------ --- ---------------- ---
在此示例中,我们设置了最多重试 5 次和延迟 1 秒钟。
delay.max
设置了最大延迟时间,以确保在 retryIf
函数返回 true
的情况下没有无限重试。
max
是指重试的最大次数。
您可以使用 retryIf
函数来定义哪些请求会重试。在本例中,我们只重试错误状态码为 500 的请求。
示例
以下是一个示例,如何使用 apollo-link-retry
:
-- -------------------- ---- ------- ------ - ------------ - ---- ---------------- ------ - ------------- - ---- ------------------------ ------ - --------- - ---- -------------------- ------ - -------- - ---- ------------------- ------ --- ---- -------------- ----- --------- - --- ----------- ------ - -------- ----- ---- --------- ------- ---- -- --------- - ---- -- -------- ------- ----------- -- ------- -- ---------------- --- --- - --- ----- -------- - --- ---------- ---- ---------- --- ----- ------ - --- -------------- ----- --------------------------- ------ --- ---------------- --- ------ -------- ------ ---- ----- ----- - ----- - -- ---- - - - -- -------------- -- - -------------------- -- -------------- -- - ------------------- ---
这个示例会在您的 GraphQL API 调用 返回状态代码为 500 的情况下重试多达 5 次此操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedaafcb5cbfe1ea061060f