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) => booleanSi skip renvoie true, la vérification de déduplication est ignorée.
(url, opts) => stringRenvoie une clé utilisée pour identifier la demande.
(response: Response) => ResponseCette 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).
millisecondsLe timer entre chaque tentative.
(delay, nbOfAttempts) => millisecondsLa fonction personnalisée utilisée pour calculer le délai réel en fonction de la minuterie et du nombre de tentatives.
numberLe 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) => ResponseCette 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.
millisecondsLa réponse sera stockée pendant cette durée avant d'être supprimée du cache.
(url, opts) => booleanSi skip renvoie true, la vérification de déduplication est ignorée.
(url, opts) => stringRenvoie une clé utilisée pour identifier la demande.
(url, opts) => booleanEfface le cache si c'est vrai.
(url, opts) => string | RegExp | Array<string | RegExp> | nullSupprime les URL correspondant à la chaîne ou à la RegExp du cache. Peut utiliser un tableau pour invalider plusieurs valeurs.
response => booleanSi 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.
millisecondsLa demande sera retardée d’autant.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */