如何在React js中使用superagent的.retry?

问题描述 投票:1回答:1

我将其发布在这里,因为找不到关于此主题的良好示例/文档。官方的Supergent文件只说

此方法有两个可选参数:重试次数(默认为3)和回调。在每次重试之前,它将调用callback(err,res)。回调可以返回true / false以控制是否重试请求(但始终应用最大重试次数)。

我对此功能有以下疑问。

  1. 如果没有回调到重试方法会发生什么,例如:request.retry();它如何决定何时重试?
  2. 回调函数返回的true/false是否决定是否重试?
  3. 如果请求由于特定的错误类型(例如5xx)而失败,是否可以跳过重试?
  4. 如何将异步函数用作回调?

谢谢

reactjs superagent
1个回答
0
投票

回答您的问题:

  1. 代码文档说在以下情况下重试被调用:
/**
 * Set number of retry attempts on error.
 *
 * Failed requests will be retried 'count' times if timeout or err.code >= 500.
 *
 * @param {Number} count
 * @param {Function} [fn]
 * @return {Request} for chaining
 * @api public
 */

  1. 是,返回true重试,false不重试
  2. 是,您可以将(err, res)传递到回调中,并将其编程到回调逻辑中,并在所需的错误代码上返回false
  3. [根据我的测试,不,您不能使用async函数作为retry的回调。无法重试。这将是一个不错的功能。
© www.soinside.com 2019 - 2024. All rights reserved.