wretch middlewares
1.0.0
wretch
包中npm i wretch-middlewares
<!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >
重复数据删除 | 重试 | 限制缓存 | 延迟 |
---|
防止同时出现多个相同的请求。
(url, opts) => boolean
如果skip返回true,则跳过重复数据删除检查。
(url, opts) => string
返回用于识别请求的密钥。
(response: Response) => Response
当解析重复调用的获取响应时,将调用此函数。默认情况下,它克隆响应以允许从多个源读取正文。
import wretch from 'wretch'
import { dedupe } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
dedupe ( {
/* Options - defaults below */
skip : ( url , opts ) => opts . skipDedupe || opts . method !== 'GET' ,
key : ( url , opts ) => opts . method + '@' + url ,
resolver : response => response . clone ( )
} )
] ) . /* ... */
如果出现错误(或直到自定义条件为真),请多次重试请求。
milliseconds
每次尝试之间的计时器。
(delay, nbOfAttempts) => milliseconds
用于根据计时器和尝试次数计算实际延迟的自定义函数。
number
解决带有最后一个错误的承诺之前的最大重试次数。指定 0 意味着无限次重试。
(fetchResponse, error) => boolean | Promise<boolean>
将重试该请求,直到满足该条件为止。
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>
重试请求之前将执行的回调。如果此函数返回具有 url 和/或 options 属性的对象,它们将覆盖重试请求中的现有值。如果它返回 Promise,则在重试请求之前将等待它。
boolean
如果为 true,则在抛出网络错误时将重试请求。还将向onRetry
和until
方法提供“错误”参数。
(response: Response) => Response
当解析重复调用的获取响应时,将调用此函数。默认情况下,它克隆响应以允许从多个源读取正文。
import wretch from 'wretch'
import { retry } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
retry ( {
/* Options - defaults below */
delayTimer : 500 ,
delayRamp : ( delay , nbOfAttempts ) => delay * nbOfAttempts ,
maxAttempts : 10 ,
until : ( response , error ) => response && response . ok ,
onRetry : null ,
retryOnNetworkError : false ,
resolver : response => response . clone ( )
} )
] ) . /* ... */
// You can also return a Promise, which is useful if you want to inspect the body:
wretch ( ) . middlewares ( [
retry ( {
until : response =>
response . json ( ) . then ( body =>
body . field === 'something'
)
} )
] )
节流缓存,用于在一定时间内存储和服务服务器响应。
milliseconds
响应将被存储一段时间,然后从缓存中删除。
(url, opts) => boolean
如果skip返回true,则跳过重复数据删除检查。
(url, opts) => string
返回用于识别请求的密钥。
(url, opts) => boolean
如果为 true,则清除缓存。
(url, opts) => string | RegExp | Array<string | RegExp> | null
从缓存中删除与字符串或 RegExp 匹配的 url。可以使用数组使多个值无效。
response => boolean
如果为 false,则响应将不会添加到缓存中。
string
如果设置,从缓存返回的响应将使用等于此选项的属性名称进行标记。
import wretch from 'wretch'
import { throttlingCache } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
throttlingCache ( {
/* Options - defaults below */
throttle : 1000 ,
skip : ( url , opts ) => opts . skipCache || opts . method !== 'GET' ,
key : ( url , opts ) => opts . method + '@' + url ,
clear : ( url , opts ) => false ,
invalidate : ( url , opts ) => null ,
condition : response => response . ok ,
flagResponseOnCacheHit : '__cached'
} )
] ) . /* ... */
将请求延迟特定的时间。
milliseconds
该请求将被延迟该时间。
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */