wretch
principal à partir de wretch v2.0.0npm i wretch-middlewares
<!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >
Déduplication | Réessayer | Cache de limitation | Retard |
---|
Empêche d'avoir plusieurs requêtes identiques à la volée en même temps.
(url, opts) => boolean
Si skip renvoie true, la vérification de déduplication est ignorée.
(url, opts) => string
Renvoie une clé utilisée pour identifier la demande.
(response: Response) => Response
Cette fonction est appelée lors de la résolution de la réponse de récupération des appels en double. Par défaut, il clone la réponse pour permettre la lecture du corps à partir de plusieurs sources.
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 ( )
} )
] ) . /* ... */
Réessaye une demande plusieurs fois en cas d'erreur (ou jusqu'à ce qu'une condition personnalisée soit vraie).
milliseconds
Le timer entre chaque tentative.
(delay, nbOfAttempts) => milliseconds
La fonction personnalisée utilisée pour calculer le délai réel en fonction de la minuterie et du nombre de tentatives.
number
Le nombre maximum de tentatives avant de résoudre la promesse avec la dernière erreur. Spécifier 0 signifie des tentatives infinies.
(fetchResponse, error) => boolean | Promise<boolean>
La demande sera réessayée jusqu'à ce que cette condition soit satisfaite.
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>
Rappel qui sera exécuté avant de réessayer la demande. Si cette fonction renvoie un objet ayant des propriétés d'URL et/ou d'options, ils remplaceront les valeurs existantes dans la requête réessayée. S'il renvoie une promesse, elle sera attendue avant de réessayer la demande.
boolean
Si c'est vrai, réessayera la demande si une erreur réseau a été générée. Fournit également un argument « erreur » aux méthodes onRetry
et until
.
(response: Response) => Response
Cette fonction est appelée lors de la résolution de la réponse de récupération des appels en double. Par défaut, il clone la réponse pour permettre la lecture du corps à partir de plusieurs sources.
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 cache de limitation qui stocke et sert les réponses du serveur pendant un certain temps.
milliseconds
La réponse sera stockée pendant cette durée avant d'être supprimée du cache.
(url, opts) => boolean
Si skip renvoie true, la vérification de déduplication est ignorée.
(url, opts) => string
Renvoie une clé utilisée pour identifier la demande.
(url, opts) => boolean
Efface le cache si c'est vrai.
(url, opts) => string | RegExp | Array<string | RegExp> | null
Supprime les URL correspondant à la chaîne ou à la RegExp du cache. Peut utiliser un tableau pour invalider plusieurs valeurs.
response => boolean
Si faux, la réponse ne sera pas ajoutée au cache.
string
flagResponseOnCacheHitSi elle est définie, une réponse renvoyée par le cache sera signalée avec un nom de propriété égal à cette option.
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'
} )
] ) . /* ... */
Retarde la demande d’une durée spécifique.
milliseconds
La demande sera retardée d’autant.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */