wretch a partir de Wretch v2.0.0.npm i wretch-middlewares <!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >| Deduplicar | Rever | Limitación de caché | Demora |
|---|
Evita tener múltiples solicitudes idénticas sobre la marcha al mismo tiempo.
(url, opts) => booleanSi skip devuelve verdadero, entonces se omite la verificación de deduplicación.
(url, opts) => stringDevuelve una clave que se utiliza para identificar la solicitud.
(response: Response) => ResponseEsta función se llama al resolver la respuesta de recuperación de llamadas duplicadas. De forma predeterminada, clona la respuesta para permitir leer el cuerpo de múltiples fuentes.
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 ( )
} )
] ) . /* ... */ Vuelve a intentar una solicitud varias veces en caso de error (o hasta que se cumpla una condición personalizada).
millisecondsEl cronómetro entre cada intento.
(delay, nbOfAttempts) => millisecondsLa función personalizada que se utiliza para calcular el retraso real en función del temporizador y la cantidad de intentos.
numberEl número máximo de reintentos antes de resolver la promesa con el último error. Especificar 0 significa reintentos infinitos.
(fetchResponse, error) => boolean | Promise<boolean>La solicitud se volverá a intentar hasta que se cumpla esa condición.
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>Devolución de llamada que se ejecutará antes de volver a intentar la solicitud. Si esta función devuelve un objeto que tiene propiedades de URL y/o opciones, anularán los valores existentes en la solicitud reintentada. Si devuelve una Promesa, se esperará antes de volver a intentar la solicitud.
boolean Si es verdadero, volverá a intentar la solicitud si se produjo un error de red. También proporcionará un argumento de 'error' para los métodos onRetry y until .
(response: Response) => ResponseEsta función se llama al resolver la respuesta de recuperación de llamadas duplicadas. De forma predeterminada, clona la respuesta para permitir leer el cuerpo de múltiples fuentes.
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'
)
} )
] ) Un caché de aceleración que almacena y entrega respuestas del servidor durante un período de tiempo determinado.
millisecondsLa respuesta se almacenará durante este período de tiempo antes de eliminarse del caché.
(url, opts) => booleanSi skip devuelve verdadero, entonces se omite la verificación de deduplicación.
(url, opts) => stringDevuelve una clave que se utiliza para identificar la solicitud.
(url, opts) => booleanBorra el caché si es verdadero.
(url, opts) => string | RegExp | Array<string | RegExp> | nullElimina las URL que coinciden con la cadena o RegExp del caché. Puede usar una matriz para invalidar múltiples valores.
response => booleanSi es falso, la respuesta no se agregará al caché.
stringSi se establece, una respuesta devuelta desde la memoria caché se marcará con un nombre de propiedad igual a esta opción.
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'
} )
] ) . /* ... */ Retrasa la solicitud por un período de tiempo específico.
millisecondsLa solicitud se retrasará por esa cantidad de tiempo.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */