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) => boolean
Si skip devuelve verdadero, entonces se omite la verificación de deduplicación.
(url, opts) => string
Devuelve una clave que se utiliza para identificar la solicitud.
(response: Response) => Response
Esta 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).
milliseconds
El cronómetro entre cada intento.
(delay, nbOfAttempts) => milliseconds
La función personalizada que se utiliza para calcular el retraso real en función del temporizador y la cantidad de intentos.
number
El 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) => Response
Esta 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.
milliseconds
La respuesta se almacenará durante este período de tiempo antes de eliminarse del caché.
(url, opts) => boolean
Si skip devuelve verdadero, entonces se omite la verificación de deduplicación.
(url, opts) => string
Devuelve una clave que se utiliza para identificar la solicitud.
(url, opts) => boolean
Borra el caché si es verdadero.
(url, opts) => string | RegExp | Array<string | RegExp> | null
Elimina las URL que coinciden con la cadena o RegExp del caché. Puede usar una matriz para invalidar múltiples valores.
response => boolean
Si es falso, la respuesta no se agregará al caché.
string
Si 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.
milliseconds
La solicitud se retrasará por esa cantidad de tiempo.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */