获取重试
使用获取 API 来运行请求, 执行重试
安装
npm install --save @ambassify/fetch-retried
使用量
你可以像往常一样使用取回的 api 。 唯一不同的是源头 您的获取方法。 您在此使用取取 将使用您想要的配置 .
const fetchRetried = require('@ambassify/fetch-retried');
const fetch = fetchRetried({ delay: 100 });
fetch('https://www.google.com')
.then(resp => resp.json())
.then(json => console.log(json));
选项
所有选项都是可选的,并有默认值.
- 延迟: 当使用默认值时
exponential备份,用于计算超时的延迟。 否则,一种计算所用超时的方法。 (默认 :200(中文(简体) ) - 重试:重试请求的次数. (默认 :
5(中文(简体) ) - 正则: 确定请求是否通过返回而成功的方法
true或者说false当通过一个答复。 (默认 :(resp) => resp.ok(中文(简体) ) - 应重试错误: 当获取错误时, 此方法通过返回来确定请求是否被重试
true或者说false(默认 :() => true(中文(简体) ) - 重试方法: 要重试的 HTTP 动词( 默认 ):
['PUT', 'DELETE', 'GET', 'HEAD', 'PATCH', 'OPTIONS']) (中文(简体) ). - 应重试:允许您推翻默认方法来检查是否应该尝试重试 。 使用接受下列签名的函数:
shouldRetry(url, requestOptions, { attempts, config, error, response })。 。 。 . - 获取: 基础获取执行供使用。 (默认 :
require('node-fetch')(中文(简体) )
后退战略
策略附于此软件包的默认导入后,可以使用.
const fetchRetried = require('@ambassify/fetch-retried');
fetchRetried.exponential;
// OR
fetchRetried.binaryExponential;
// Usage:
const fetch = fetchRetried({
delay: fetchRetried.exponential(10)
})
// OR
const fetch = fetchRetried({
delay: fetchRetried.binaryExponential()
})
指数
function exponential(delay) {
return (attempts) => (attempts * attempts) * delay;
}
二进制
function binaryExponential(delay = 1) {
return (attempts) => (Math.pow(2, attempts) - 1) * delay;
}
贡献
我们真的很感激你的任何贡献 所以不要 不愿报告问题或提交拉动请求.
许可证
这个项目以麻省理工学院的许可证发放.
关于我们
如果你想知道更多关于我们的事 请看看 我们的网站,或者我们的Twitter账户 解析, (中文(简体) ), 场地基地, (中文(简体) ), 豪尔根 Evens