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

时间:2018-09-25 16:01:17

标签: reactjs superagent

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

  

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

关于此功能,我有以下疑问。

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

谢谢

1 个答案:

答案 0 :(得分: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的回调。无法重试。这将是一个不错的功能。